import type { PrimingSession } from '@salesforce/lds-runtime-mobile';
interface PrimingError {
    ids: string[];
    code: ErrorCode;
    message: string;
}
type ErrorCode = 'precondition-error' | 'not-found' | 'service-protection-error' | 'service-unavailable' | 'canceled' | 'unknown';
export interface PrimingEventHandler {
    onError?: (error: PrimingError) => void;
    onPrimed?: (ids: string[]) => void;
}
export interface PrimingSessionConfig {
    primingEventHandler?: PrimingEventHandler;
    concurrency?: number;
    batchSize?: number;
}
export declare function createPrimingSession(config: PrimingSessionConfig): {
    enqueue: (work: PrimingWork, context?: import("@salesforce/lds-runtime-mobile").ObservabilityContext | undefined) => Promise<void>;
    cancel: () => void;
    on: <K extends keyof import("@salesforce/lds-runtime-mobile/dist/types/priming").PrimingEvents>(eventName: K, callback: (payload: import("@salesforce/lds-runtime-mobile/dist/types/priming").PrimingEvents[K]) => void) => PrimingSession;
    once: <K_1 extends keyof import("@salesforce/lds-runtime-mobile/dist/types/priming").PrimingEvents>(eventName: K_1, callback: (payload: import("@salesforce/lds-runtime-mobile/dist/types/priming").PrimingEvents[K_1]) => void) => PrimingSession;
    off: <K_2 extends keyof import("@salesforce/lds-runtime-mobile/dist/types/priming").PrimingEvents>(eventName: K_2, callback: (payload: import("@salesforce/lds-runtime-mobile/dist/types/priming").PrimingEvents[K_2]) => void) => PrimingSession;
    registerEventHandler: (handler: PrimingEventHandler) => () => void;
};
export {};
