import { SafekeyDeviceUseCase, IOResponse } from '../../../../../../safekey/application/safekey-device-use-case';
import MergingProcessRepository from '../../../../protection-plan/domain/repositories/merging-process-repository';
export type AuthorizeColdDeviceResult = {
    deviceId: string;
};
export interface AuthorizeColdDeviceCallbacks {
    /** Fired after connect — prompt user to press the device button. */
    onTouchRequired?: () => void;
    /** IO progress during the touch (button press timeout countdown). */
    onConnectProgress?: (io: IOResponse) => void;
    /** Fired after successful connect+touch, before collecting share IDs. */
    onAuthorizing?: () => void;
    /** IO progress during collectAllSharesPlansIds. */
    onProgress?: (io: IOResponse) => void;
}
export declare class AuthorizeMergeAuthorityColdDeviceUseCase {
    private safekey;
    private mergeRepo;
    constructor(safekey: SafekeyDeviceUseCase, mergeRepo: MergingProcessRepository);
    execute(devicePin: string, callbacks?: AuthorizeColdDeviceCallbacks): Promise<AuthorizeColdDeviceResult>;
    private isLegacyMergeAuthority;
}
