import { Kysely } from 'kysely';
import { DB } from "../../database/database.type";
import { BillingPlatform, SubscriptionStatus } from './billing.types';
type SubscriptionSource = 'apple' | 'google' | 'manual' | 'signup_bonus' | 'stripe';
interface UpsertSubscriptionInput {
    db: Kysely<DB>;
    user_id: string;
    platform: BillingPlatform;
    sourceOverride?: SubscriptionSource;
    productId: string;
    status: SubscriptionStatus;
    transactionId: string;
    originalTransactionId?: string;
    expiresAt?: Date;
}
export declare function mapPlatformToSource(platform: BillingPlatform): 'apple' | 'google';
export declare function isStoreSubscriptionSource(source?: string | null): boolean;
export declare function getActiveExternalPremium(db: Kysely<DB>, user_id: string, lockUser?: boolean): Promise<{
    premiumUntil: Date;
    premiumSource: string;
} | null>;
export declare function upsertSubscription(input: UpsertSubscriptionInput): Promise<void>;
export {};
