import { SafeModule } from "./SafeModule";
import { MetaTransaction } from "../../../types";
export declare enum SocialRecoveryModuleGracePeriodSelector {
    After3Minutes = "0x949d01d424bE050D09C16025dd007CB59b3A8c66",
    After3Days = "0x38275826E1933303E508433dD5f289315Da2541c",
    After7Days = "0x088f6cfD8BB1dDb1BB069CCb3fc1A98927D233f2",
    After14Days = "0x9BacD92F4687Db306D7ded5d4513a51EA05df25b"
}
export declare class SocialRecoveryModule extends SafeModule {
    static readonly DEFAULT_SOCIAL_RECOVERY_ADDRESS = SocialRecoveryModuleGracePeriodSelector.After3Days;
    constructor(moduleAddress?: string);
    createConfirmRecoveryMetaTransaction(accountAddress: string, newOwners: string[], newThreshold: number, execute: boolean): MetaTransaction;
    createMultiConfirmRecoveryMetaTransaction(accountAddress: string, newOwners: string[], newThreshold: number, signaturePairList: RecoverySignaturePair[], execute: boolean): MetaTransaction;
    createExecuteRecoveryMetaTransaction(accountAddress: string, newOwners: string[], newThreshold: number): MetaTransaction;
    createFinalizeRecoveryMetaTransaction(accountAddress: string): MetaTransaction;
    createCancelRecoveryMetaTransaction(): MetaTransaction;
    createAddGuardianWithThresholdMetaTransaction(guardianAddress: string, threshold: bigint): MetaTransaction;
    createRevokeGuardianWithThresholdMetaTransaction(nodeRpcUrl: string, accountAddress: string, guardianAddress: string, threshold: bigint, overrides?: {
        prevGuardianAddress?: string;
    }): Promise<MetaTransaction>;
    createStandardRevokeGuardianWithThresholdMetaTransaction(prevGuardianAddress: string, guardianAddress: string, threshold: bigint): MetaTransaction;
    createChangeThresholdMetaTransaction(threshold: bigint): MetaTransaction;
    getRecoveryHash(nodeRpcUrl: string, accountAddress: string, newOwners: string[], newThreshold: number, nonce: bigint): Promise<string>;
    getRecoveryRequest(nodeRpcUrl: string, accountAddress: string): Promise<RecoveryRequest>;
    getRecoveryApprovals(nodeRpcUrl: string, accountAddress: string, newOwners: string[], newThreshold: number): Promise<bigint>;
    hasGuardianApproved(nodeRpcUrl: string, accountAddress: string, guardian: string, newOwners: string[], newThreshold: number): Promise<boolean>;
    isGuardian(nodeRpcUrl: string, accountAddress: string, guardian: string): Promise<boolean>;
    guardiansCount(nodeRpcUrl: string, accountAddress: string): Promise<bigint>;
    threshold(nodeRpcUrl: string, accountAddress: string): Promise<bigint>;
    getGuardians(nodeRpcUrl: string, accountAddress: string): Promise<string[]>;
    nonce(nodeRpcUrl: string, accountAddress: string): Promise<bigint>;
}
export type RecoveryRequest = {
    guardiansApprovalCount: bigint;
    newThreshold: bigint;
    executeAfter: bigint;
    newOwners: string[];
};
export type RecoverySignaturePair = {
    signer: bigint;
    signature: string;
};
//# sourceMappingURL=SocialRecoveryModule.d.ts.map