import { Devices, IDeviceInfo, RegistrationStatus } from '../../common/types';
import { MobiusAsyncEvent } from '../calling/types';
export type Header = {
    [key: string]: string;
};
export type restoreRegistrationCallBack = (restoreData: IDeviceInfo, caller: string) => Promise<boolean>;
export type retry429CallBack = (retryAfter: number, caller: string) => Promise<void>;
export type FailoverCacheState = {
    attempt: number;
    timeElapsed: number;
    retryScheduledTime: number;
    serverType: 'primary' | 'backup';
};
export interface IRegistration {
    setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]): void;
    triggerRegistration(): Promise<void>;
    isDeviceRegistered(): boolean;
    setStatus(value: RegistrationStatus): void;
    getStatus(): RegistrationStatus;
    getDeviceInfo(): IDeviceInfo;
    clearKeepaliveTimer(): void;
    deregister(closeMobiusWss: boolean): void;
    setActiveMobiusUrl(url: string): void;
    getActiveMobiusUrl(): string;
    reconnectOnFailure(caller: string): Promise<void>;
    isReconnectPending(): boolean;
    handleConnectionRestoration(retry: boolean): Promise<boolean>;
    setDeviceInfo(body: Devices): void;
    handleRegistrationDownEvent(event?: MobiusAsyncEvent): Promise<void>;
}
//# sourceMappingURL=types.d.ts.map