import type { DataStore } from '../data-store/index.js';
import type { StarsTransaction } from '../../types/api.js';
import type { PreCheckoutQuery, SuccessfulPayment } from '../../types/telegram.js';
import type { TelegramBotClient } from './bot-client.js';
export interface GetTransactionsOptions {
    type?: 'payment' | 'reaction';
    status?: 'pending' | 'completed' | 'refunded';
    limit?: number;
    offset?: number;
}
export interface RevenueResult {
    totalStars: number;
    totalTransactions: number;
    byType: {
        payment: number;
        reaction: number;
    };
}
export interface CreateTransactionData {
    characterId: string;
    telegramUserId: number;
    type: 'payment' | 'reaction';
    starCount: number;
    imageId?: string;
    channelId?: string;
    status?: 'pending' | 'completed' | 'refunded';
    telegramPaymentId?: string;
}
export declare class StarsManager {
    private readonly dataStore;
    constructor(dataStore: DataStore);
    handlePreCheckout(characterId: string, query: PreCheckoutQuery, botClient: TelegramBotClient): Promise<void>;
    handleSuccessfulPayment(characterId: string, payment: SuccessfulPayment, telegramUserId: number, botClient: TelegramBotClient): Promise<StarsTransaction>;
    handleStarReaction(characterId: string, userId: number, starCount: number): Promise<StarsTransaction>;
    publishPaidMedia(characterId: string, channelId: string, imageId: string, starCount: number, botClient: TelegramBotClient, caption?: string): Promise<void>;
    /**
     * Sends a Stars invoice to a user in DM for purchasing premium content.
     */
    sendContentInvoice(characterId: string, userId: number, botClient: TelegramBotClient, options: {
        title: string;
        description: string;
        starCount: number;
        imageId?: string;
    }): Promise<void>;
    getTransactions(characterId: string, options?: GetTransactionsOptions): Promise<StarsTransaction[]>;
    getRevenue(characterId: string, period?: 'daily' | 'weekly' | 'monthly'): Promise<RevenueResult>;
    createTransaction(data: CreateTransactionData): Promise<StarsTransaction>;
    private parseImageIdFromPayload;
}
//# sourceMappingURL=stars-manager.d.ts.map