import type { LicenseConfig } from './types.js';
export declare class LicenseGate {
    private cache;
    private client;
    private config;
    constructor(config: LicenseConfig, storagePath: string);
    charge(documentHash: string, metadata?: {
        file_type?: string;
        file_size_bytes?: number;
        processing_ms?: number;
    }): Promise<string>;
    confirm(chargeId: string): Promise<void>;
    refund(chargeId: string): Promise<void>;
    getStatus(): {
        balance_cents: number;
        cost_per_file_cents: number;
        files_remaining: number;
    };
    getStatusLive(): Promise<{
        balance_cents: number;
        cost_per_file_cents: number;
        files_remaining: number;
        server_reachable: boolean;
        warning?: string;
        spending?: {
            spending_limit_cents: number | null;
            spent_this_month_cents: number;
            spending_limit_resets_at: string | null;
        };
    }>;
    syncPending(): Promise<void>;
    getPendingInfo(): {
        pending_count: number;
        pending_amount_cents: number;
    };
    hasLicenseKey(): boolean;
    getServerUrl(): string;
    getCostCents(): number;
    getSpendingInfo(): Promise<{
        spending_limit_cents: number | null;
        spent_this_month_cents: number;
        spending_limit_resets_at: string | null;
    } | null>;
    setSpendingLimit(limitCents: number | null): Promise<{
        spending_limit_cents: number | null;
        limit_display: string;
    } | null>;
    close(): void;
    /**
     * Pre-seed the local cache with balance for integration tests.
     * Uses REAL SQLite cache — not a mock.
     */
    seedCacheForTests(balanceCents: number): void;
}
//# sourceMappingURL=gate.d.ts.map