import type { UserProfile } from './userProfile';
import type { AdRevenue, Revenue } from './revenue';
import type { ECommerceEvent } from './ecommerce';
export interface IReporter {
    reportError(identifier: string, message?: string, _reason?: Error | Object): void;
    reportErrorWithoutIdentifier(message: string | undefined, error: Error): void;
    reportUnhandledException(error: Error): void;
    reportEvent(eventName: string, attributes?: Record<string, any>): void;
    pauseSession(): void;
    resumeSession(): void;
    sendEventsBuffer(): void;
    clearAppEnvironment(): void;
    putAppEnvironmentValue(key: string, value?: string): void;
    setUserProfileID(userProfileID?: string): void;
    setDataSendingEnabled(enabled: boolean): void;
    reportUserProfile(userProfile: UserProfile): void;
    reportAdRevenue(adRevenue: AdRevenue): void;
    reportECommerce(event: ECommerceEvent): void;
    reportRevenue(revenue: Revenue): void;
}
export declare class Reporter implements IReporter {
    private apiKey;
    constructor(apiKey: string);
    reportError(identifier: string, message?: string, _reason?: Error | Object): void;
    reportErrorWithoutIdentifier(message: string | undefined, error: Error): void;
    reportUnhandledException(error: Error): void;
    reportEvent(eventName: string, attributes?: Record<string, any>): void;
    pauseSession(): void;
    resumeSession(): void;
    sendEventsBuffer(): void;
    clearAppEnvironment(): void;
    putAppEnvironmentValue(key: string, value?: string): void;
    setUserProfileID(userProfileID: string): void;
    setDataSendingEnabled(enabled: boolean): void;
    reportUserProfile(profile: UserProfile): void;
    reportAdRevenue(adRevenue: AdRevenue): void;
    reportECommerce(ecommerce: ECommerceEvent): void;
    reportRevenue(revenue: Revenue): void;
}
export type ReporterConfig = {
    apiKey: string;
    logs?: boolean;
    maxReportsInDatabaseCount?: number;
    sessionTimeout?: number;
    dataSendingEnabled?: boolean;
    appEnvironment?: Record<string, string | undefined>;
    dispatchPeriodSeconds?: number;
    userProfileID?: string;
    maxReportsCount?: number;
};
//# sourceMappingURL=reporter.d.ts.map