import { IPusher, MatrixClient, LocalNotificationSettings } from "matrix-js-sdk/src/matrix";
import { VerificationRequest } from "matrix-js-sdk/src/crypto-api";
import { DevicesDictionary, ExtendedDevice } from "./types";
/**
 * Fetch extended details of the user's own devices
 *
 * @param matrixClient - Matrix Client
 * @returns A dictionary mapping from device ID to ExtendedDevice
 */
export declare function fetchExtendedDeviceInformation(matrixClient: MatrixClient): Promise<DevicesDictionary>;
export declare enum OwnDevicesError {
    Unsupported = "Unsupported",
    Default = "Default"
}
export type DevicesState = {
    devices: DevicesDictionary;
    dehydratedDeviceId?: string;
    pushers: IPusher[];
    localNotificationSettings: Map<string, LocalNotificationSettings>;
    currentDeviceId: string;
    isLoadingDeviceList: boolean;
    requestDeviceVerification?: (deviceId: ExtendedDevice["device_id"]) => Promise<VerificationRequest>;
    refreshDevices: () => Promise<void>;
    saveDeviceName: (deviceId: ExtendedDevice["device_id"], deviceName: string) => Promise<void>;
    setPushNotifications: (deviceId: ExtendedDevice["device_id"], enabled: boolean) => Promise<void>;
    error?: OwnDevicesError;
    supportsMSC3881?: boolean | undefined;
};
export declare const useOwnDevices: () => DevicesState;
