export type DevicePersistenceOptions = {
    /**
     * Enables device preference persistence on web.
     * @default true
     */
    enabled?: boolean;
    /**
     * Storage key for persisted preferences.
     * @default '@stream-io/device-preferences'
     */
    storageKey?: string;
};
export type DevicePreferenceKey = 'microphone' | 'camera' | 'speaker';
export type LocalDevicePreference = {
    selectedDeviceId: string;
    selectedDeviceLabel: string;
    muted?: boolean;
};
export type LocalDevicePreferences = {
    [type in DevicePreferenceKey]?: LocalDevicePreference | LocalDevicePreference[];
};
export declare const defaultDeviceId = "default";
export declare const normalize: (options: DevicePersistenceOptions | undefined) => Required<DevicePersistenceOptions>;
export declare const createSyntheticDevice: (deviceId: string, kind: MediaDeviceKind, label?: string) => MediaDeviceInfo;
export declare const readPreferences: (storageKey: string) => LocalDevicePreferences;
export declare const writePreferences: (currentDevice: MediaDeviceInfo | undefined, deviceKey: DevicePreferenceKey, muted: boolean | undefined, storageKey: string) => void;
export declare const toPreferenceList: (preference?: LocalDevicePreference | LocalDevicePreference[]) => LocalDevicePreference[];
