import * as z from 'zod';
import type { icrc21_consent_info } from '../declarations/icrc-21';
export declare const PromptMethodSchema: z.ZodEnum<["icrc21_call_consent_message", "icrc25_request_permissions", "icrc27_accounts", "icrc49_call_canister"]>;
export interface Prompts {
    [PromptMethodSchema.enum.icrc21_call_consent_message]: ConsentMessagePrompt;
    [PromptMethodSchema.enum.icrc25_request_permissions]: PermissionsPrompt;
    [PromptMethodSchema.enum.icrc27_accounts]: AccountsPrompt;
    [PromptMethodSchema.enum.icrc49_call_canister]: CallCanisterPrompt;
}
export interface RegisterPrompts<T extends keyof Prompts> {
    method: T;
    prompt: Prompts[T];
}
declare const PayloadOriginSchema: z.ZodObject<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, "strip", z.ZodTypeAny, {
    origin: string;
}, {
    origin: string;
}>;
export type PayloadOrigin = z.infer<typeof PayloadOriginSchema>;
declare const RejectionSchema: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
export type Rejection = z.infer<typeof RejectionSchema>;
declare const PermissionsConfirmationSchema: z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodObject<{
    scope: z.ZodObject<{
        method: z.ZodEnum<["icrc27_accounts", "icrc49_call_canister"]>;
    }, "strip", z.ZodTypeAny, {
        method: "icrc27_accounts" | "icrc49_call_canister";
    }, {
        method: "icrc27_accounts" | "icrc49_call_canister";
    }>;
    state: z.ZodEnum<["granted", "denied", "ask_on_use"]>;
}, "strict", z.ZodTypeAny, {
    state: "denied" | "granted" | "ask_on_use";
    scope: {
        method: "icrc27_accounts" | "icrc49_call_canister";
    };
}, {
    state: "denied" | "granted" | "ask_on_use";
    scope: {
        method: "icrc27_accounts" | "icrc49_call_canister";
    };
}>, "many">], z.ZodUnknown>, z.ZodVoid>;
export type PermissionsConfirmation = z.infer<typeof PermissionsConfirmationSchema>;
declare const PermissionsPromptPayloadSchema: z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    requestedScopes: z.ZodArray<z.ZodObject<{
        scope: z.ZodObject<{
            method: z.ZodEnum<["icrc27_accounts", "icrc49_call_canister"]>;
        }, "strip", z.ZodTypeAny, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }>;
        state: z.ZodEnum<["granted", "denied", "ask_on_use"]>;
    }, "strict", z.ZodTypeAny, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }>, "many">;
    confirm: z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodObject<{
        scope: z.ZodObject<{
            method: z.ZodEnum<["icrc27_accounts", "icrc49_call_canister"]>;
        }, "strip", z.ZodTypeAny, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }>;
        state: z.ZodEnum<["granted", "denied", "ask_on_use"]>;
    }, "strict", z.ZodTypeAny, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }>, "many">], z.ZodUnknown>, z.ZodVoid>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    confirm: (args_0: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[], ...args_1: unknown[]) => void;
    requestedScopes: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[];
}, {
    origin: string;
    confirm: (args_0: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[], ...args_1: unknown[]) => void;
    requestedScopes: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[];
}>;
export type PermissionsPromptPayload = z.infer<typeof PermissionsPromptPayloadSchema>;
/**
 * A function that is invoked when the signer requires the user to confirm (grant or deny) requested permissions.
 *
 * This function may be triggered in two scenarios:
 * 1. When the relying party explicitly requests permissions.
 * 2. When the relying party attempts to access a feature that requires permissions that have not yet been granted by the user.
 *
 * @param {PermissionsPromptPayload} params - An object containing the requested permissions and a function to confirm them.
 * @param {IcrcScopes[]} params.requestedScopes - An array of IcrcScopes representing the permissions being requested.
 * @param {PermissionsConfirmation} params.confirm - A function to be called by the consumer to confirm (grant or deny) the requested, a subset, or none of the permissions. Skipping a permission is equivalent to preserving its current state.
 */
export declare const PermissionsPromptSchema: z.ZodFunction<z.ZodTuple<[z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    requestedScopes: z.ZodArray<z.ZodObject<{
        scope: z.ZodObject<{
            method: z.ZodEnum<["icrc27_accounts", "icrc49_call_canister"]>;
        }, "strip", z.ZodTypeAny, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }>;
        state: z.ZodEnum<["granted", "denied", "ask_on_use"]>;
    }, "strict", z.ZodTypeAny, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }>, "many">;
    confirm: z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodObject<{
        scope: z.ZodObject<{
            method: z.ZodEnum<["icrc27_accounts", "icrc49_call_canister"]>;
        }, "strip", z.ZodTypeAny, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }, {
            method: "icrc27_accounts" | "icrc49_call_canister";
        }>;
        state: z.ZodEnum<["granted", "denied", "ask_on_use"]>;
    }, "strict", z.ZodTypeAny, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }, {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }>, "many">], z.ZodUnknown>, z.ZodVoid>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    confirm: (args_0: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[], ...args_1: unknown[]) => void;
    requestedScopes: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[];
}, {
    origin: string;
    confirm: (args_0: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[], ...args_1: unknown[]) => void;
    requestedScopes: {
        state: "denied" | "granted" | "ask_on_use";
        scope: {
            method: "icrc27_accounts" | "icrc49_call_canister";
        };
    }[];
}>], z.ZodUnknown>, z.ZodVoid>;
export type PermissionsPrompt = z.infer<typeof PermissionsPromptSchema>;
declare const AccountsApprovalSchema: z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodObject<{
    owner: z.ZodEffects<z.ZodString, string, string>;
    subaccount: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
}, "strict", z.ZodTypeAny, {
    owner: string;
    subaccount?: string | undefined;
}, {
    owner: string;
    subaccount?: string | undefined;
}>, "many">], z.ZodUnknown>, z.ZodVoid>;
export type AccountsApproval = z.infer<typeof AccountsApprovalSchema>;
declare const AccountsPromptPayloadSchema: z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    approve: z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodObject<{
        owner: z.ZodEffects<z.ZodString, string, string>;
        subaccount: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
    }, "strict", z.ZodTypeAny, {
        owner: string;
        subaccount?: string | undefined;
    }, {
        owner: string;
        subaccount?: string | undefined;
    }>, "many">], z.ZodUnknown>, z.ZodVoid>;
    reject: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    approve: (args_0: {
        owner: string;
        subaccount?: string | undefined;
    }[], ...args_1: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}, {
    origin: string;
    approve: (args_0: {
        owner: string;
        subaccount?: string | undefined;
    }[], ...args_1: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}>;
export type AccountsPromptPayload = z.infer<typeof AccountsPromptPayloadSchema>;
/**
 * A function that is invoked when the signer requires the user - or consumer of the library - to confirm (select or reject) accounts.
 *
 * @param {AccountsPromptPayload} params - An object containing a function to confirm the accounts.
 * @param {IcrcAccounts[]} params.approve - A function to be called by the consumer to confirm (select or reject) the provided accounts.
 */
export declare const AccountsPromptSchema: z.ZodFunction<z.ZodTuple<[z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    approve: z.ZodFunction<z.ZodTuple<[z.ZodArray<z.ZodObject<{
        owner: z.ZodEffects<z.ZodString, string, string>;
        subaccount: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
    }, "strict", z.ZodTypeAny, {
        owner: string;
        subaccount?: string | undefined;
    }, {
        owner: string;
        subaccount?: string | undefined;
    }>, "many">], z.ZodUnknown>, z.ZodVoid>;
    reject: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    approve: (args_0: {
        owner: string;
        subaccount?: string | undefined;
    }[], ...args_1: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}, {
    origin: string;
    approve: (args_0: {
        owner: string;
        subaccount?: string | undefined;
    }[], ...args_1: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}>], z.ZodUnknown>, z.ZodVoid>;
export type AccountsPrompt = z.infer<typeof AccountsPromptSchema>;
declare const ConsentMessageApprovalSchema: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
export type ConsentMessageApproval = z.infer<typeof ConsentMessageApprovalSchema>;
declare const ConsentMessageStatusSchema: z.ZodUnion<[z.ZodEnum<["loading"]>, z.ZodEnum<["result", "error"]>]>;
export type ConsentMessageStatus = z.infer<typeof ConsentMessageStatusSchema>;
declare const ConsentInfoOkSchema: z.ZodObject<{
    Ok: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
}, "strip", z.ZodTypeAny, {
    Ok: icrc21_consent_info;
}, {
    Ok: icrc21_consent_info;
}>;
export type ConsentInfoOk = z.infer<typeof ConsentInfoOkSchema>;
declare const ConsentInfoWarnSchema: z.ZodObject<{
    Warn: z.ZodObject<z.objectUtil.extendShape<Pick<{
        canisterId: z.ZodEffects<z.ZodString, string, string>;
        sender: z.ZodEffects<z.ZodString, string, string>;
        method: z.ZodString;
        arg: z.ZodEffects<z.ZodString, string, string>; /**
         * A function that is invoked when the signer requires the user - or consumer of the library - to confirm (select or reject) accounts.
         *
         * @param {AccountsPromptPayload} params - An object containing a function to confirm the accounts.
         * @param {IcrcAccounts[]} params.approve - A function to be called by the consumer to confirm (select or reject) the provided accounts.
         */
        nonce: z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>, string | undefined, string | undefined>;
    }, "method" | "arg" | "canisterId">, {
        consentInfo: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
    }>, "strip", z.ZodTypeAny, {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    }, {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    }>;
}, "strip", z.ZodTypeAny, {
    Warn: {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    };
}, {
    Warn: {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    };
}>;
export type ConsentInfoWarn = z.infer<typeof ConsentInfoWarnSchema>;
declare const ResultConsentInfoSchema: z.ZodUnion<[z.ZodObject<{
    Ok: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
}, "strip", z.ZodTypeAny, {
    Ok: icrc21_consent_info;
}, {
    Ok: icrc21_consent_info;
}>, z.ZodObject<{
    Warn: z.ZodObject<z.objectUtil.extendShape<Pick<{
        canisterId: z.ZodEffects<z.ZodString, string, string>;
        sender: z.ZodEffects<z.ZodString, string, string>;
        method: z.ZodString;
        arg: z.ZodEffects<z.ZodString, string, string>; /**
         * A function that is invoked when the signer requires the user - or consumer of the library - to confirm (select or reject) accounts.
         *
         * @param {AccountsPromptPayload} params - An object containing a function to confirm the accounts.
         * @param {IcrcAccounts[]} params.approve - A function to be called by the consumer to confirm (select or reject) the provided accounts.
         */
        nonce: z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>, string | undefined, string | undefined>;
    }, "method" | "arg" | "canisterId">, {
        consentInfo: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
    }>, "strip", z.ZodTypeAny, {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    }, {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    }>;
}, "strip", z.ZodTypeAny, {
    Warn: {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    };
}, {
    Warn: {
        method: string;
        arg: string;
        canisterId: string;
        consentInfo: icrc21_consent_info;
    };
}>]>;
export type ResultConsentInfo = z.infer<typeof ResultConsentInfoSchema>;
declare const ResultConsentMessageSchema: z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"result">;
    consentInfo: z.ZodUnion<[z.ZodObject<{
        Ok: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
    }, "strip", z.ZodTypeAny, {
        Ok: icrc21_consent_info;
    }, {
        Ok: icrc21_consent_info;
    }>, z.ZodObject<{
        Warn: z.ZodObject<z.objectUtil.extendShape<Pick<{
            canisterId: z.ZodEffects<z.ZodString, string, string>;
            sender: z.ZodEffects<z.ZodString, string, string>;
            method: z.ZodString;
            arg: z.ZodEffects<z.ZodString, string, string>; /**
             * A function that is invoked when the signer requires the user - or consumer of the library - to confirm (select or reject) accounts.
             *
             * @param {AccountsPromptPayload} params - An object containing a function to confirm the accounts.
             * @param {IcrcAccounts[]} params.approve - A function to be called by the consumer to confirm (select or reject) the provided accounts.
             */
            nonce: z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>, string | undefined, string | undefined>;
        }, "method" | "arg" | "canisterId">, {
            consentInfo: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
        }>, "strip", z.ZodTypeAny, {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        }, {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        }>;
    }, "strip", z.ZodTypeAny, {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    }, {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    }>]>;
    approve: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
    reject: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "result";
    consentInfo: {
        Ok: icrc21_consent_info;
    } | {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    };
    approve: (...args: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}, {
    origin: string;
    status: "result";
    consentInfo: {
        Ok: icrc21_consent_info;
    } | {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    };
    approve: (...args: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}>;
export type ResultConsentMessage = z.infer<typeof ResultConsentMessageSchema>;
declare const ConsentMessagePromptPayloadSchema: z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"loading">;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "loading";
}, {
    origin: string;
    status: "loading";
}>, z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"result">;
    consentInfo: z.ZodUnion<[z.ZodObject<{
        Ok: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
    }, "strip", z.ZodTypeAny, {
        Ok: icrc21_consent_info;
    }, {
        Ok: icrc21_consent_info;
    }>, z.ZodObject<{
        Warn: z.ZodObject<z.objectUtil.extendShape<Pick<{
            canisterId: z.ZodEffects<z.ZodString, string, string>;
            sender: z.ZodEffects<z.ZodString, string, string>;
            method: z.ZodString;
            arg: z.ZodEffects<z.ZodString, string, string>; /**
             * A function that is invoked when the signer requires the user - or consumer of the library - to confirm (select or reject) accounts.
             *
             * @param {AccountsPromptPayload} params - An object containing a function to confirm the accounts.
             * @param {IcrcAccounts[]} params.approve - A function to be called by the consumer to confirm (select or reject) the provided accounts.
             */
            nonce: z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>, string | undefined, string | undefined>;
        }, "method" | "arg" | "canisterId">, {
            consentInfo: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
        }>, "strip", z.ZodTypeAny, {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        }, {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        }>;
    }, "strip", z.ZodTypeAny, {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    }, {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    }>]>;
    approve: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
    reject: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "result";
    consentInfo: {
        Ok: icrc21_consent_info;
    } | {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    };
    approve: (...args: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}, {
    origin: string;
    status: "result";
    consentInfo: {
        Ok: icrc21_consent_info;
    } | {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    };
    approve: (...args: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}>, z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"error">;
    details: z.ZodOptional<z.ZodUnknown>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "error";
    details?: unknown;
}, {
    origin: string;
    status: "error";
    details?: unknown;
}>]>;
export type ConsentMessagePromptPayload = z.infer<typeof ConsentMessagePromptPayloadSchema>;
/**
 * A function that is invoked when the signer requires the user - or consumer of the library - to approve or reject a consent message.
 *
 * @param {ConsentMessagePromptPayload} params - An object containing the consent information and functions to handle approval or rejection.
 * @param {icrc21_consent_info} params.consentInfo - An object containing the consent information that needs to be approved or rejected.
 * @param {() => void} params.approve - A function to be called by the consumer to approve the consent message.
 * @param {() => void} params.reject - A function to be called by the consumer to reject the consent message.
 */
export declare const ConsentMessagePromptSchema: z.ZodFunction<z.ZodTuple<[z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"loading">;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "loading";
}, {
    origin: string;
    status: "loading";
}>, z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"result">;
    consentInfo: z.ZodUnion<[z.ZodObject<{
        Ok: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
    }, "strip", z.ZodTypeAny, {
        Ok: icrc21_consent_info;
    }, {
        Ok: icrc21_consent_info;
    }>, z.ZodObject<{
        Warn: z.ZodObject<z.objectUtil.extendShape<Pick<{
            canisterId: z.ZodEffects<z.ZodString, string, string>;
            sender: z.ZodEffects<z.ZodString, string, string>;
            method: z.ZodString;
            arg: z.ZodEffects<z.ZodString, string, string>; /**
             * A function that is invoked when the signer requires the user - or consumer of the library - to confirm (select or reject) accounts.
             *
             * @param {AccountsPromptPayload} params - An object containing a function to confirm the accounts.
             * @param {IcrcAccounts[]} params.approve - A function to be called by the consumer to confirm (select or reject) the provided accounts.
             */
            nonce: z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>, string | undefined, string | undefined>;
        }, "method" | "arg" | "canisterId">, {
            consentInfo: z.ZodType<icrc21_consent_info, z.ZodTypeDef, icrc21_consent_info>;
        }>, "strip", z.ZodTypeAny, {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        }, {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        }>;
    }, "strip", z.ZodTypeAny, {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    }, {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    }>]>;
    approve: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
    reject: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodVoid>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "result";
    consentInfo: {
        Ok: icrc21_consent_info;
    } | {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    };
    approve: (...args: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}, {
    origin: string;
    status: "result";
    consentInfo: {
        Ok: icrc21_consent_info;
    } | {
        Warn: {
            method: string;
            arg: string;
            canisterId: string;
            consentInfo: icrc21_consent_info;
        };
    };
    approve: (...args: unknown[]) => void;
    reject: (...args: unknown[]) => void;
}>, z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"error">;
    details: z.ZodOptional<z.ZodUnknown>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "error";
    details?: unknown;
}, {
    origin: string;
    status: "error";
    details?: unknown;
}>]>], z.ZodUnknown>, z.ZodVoid>;
export type ConsentMessagePrompt = z.infer<typeof ConsentMessagePromptSchema>;
declare const CallCanisterStatusSchema: z.ZodUnion<[z.ZodEnum<["executing"]>, z.ZodEnum<["result", "error"]>]>;
export type CallCanisterStatus = z.infer<typeof CallCanisterStatusSchema>;
declare const CallCanisterPromptPayloadSchema: z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"executing">;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "executing";
}, {
    origin: string;
    status: "executing";
}>, z.ZodIntersection<z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"result">;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "result";
}, {
    origin: string;
    status: "result";
}>, z.ZodObject<{
    contentMap: z.ZodEffects<z.ZodString, string, string>;
    certificate: z.ZodEffects<z.ZodString, string, string>;
}, "strict", z.ZodTypeAny, {
    certificate: string;
    contentMap: string;
}, {
    certificate: string;
    contentMap: string;
}>>, z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"error">;
    details: z.ZodOptional<z.ZodUnknown>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "error";
    details?: unknown;
}, {
    origin: string;
    status: "error";
    details?: unknown;
}>]>;
export type CallCanisterPromptPayload = z.infer<typeof CallCanisterPromptPayloadSchema>;
export declare const CallCanisterPromptSchema: z.ZodFunction<z.ZodTuple<[z.ZodUnion<[z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"executing">;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "executing";
}, {
    origin: string;
    status: "executing";
}>, z.ZodIntersection<z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"result">;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "result";
}, {
    origin: string;
    status: "result";
}>, z.ZodObject<{
    contentMap: z.ZodEffects<z.ZodString, string, string>;
    certificate: z.ZodEffects<z.ZodString, string, string>;
}, "strict", z.ZodTypeAny, {
    certificate: string;
    contentMap: string;
}, {
    certificate: string;
    contentMap: string;
}>>, z.ZodObject<z.objectUtil.extendShape<{
    origin: z.ZodEffects<z.ZodString, string, string>;
}, {
    status: z.ZodLiteral<"error">;
    details: z.ZodOptional<z.ZodUnknown>;
}>, "strip", z.ZodTypeAny, {
    origin: string;
    status: "error";
    details?: unknown;
}, {
    origin: string;
    status: "error";
    details?: unknown;
}>]>], z.ZodUnknown>, z.ZodVoid>;
export type CallCanisterPrompt = z.infer<typeof CallCanisterPromptSchema>;
export {};
