import * as z from 'zod';
import { CrossmintEmbeddedCheckoutV3Props } from '../../../types/index.cjs';
import { IFrameWindow } from '@crossmint/client-sdk-window';
import { CrossmintApiClient } from '@crossmint/common-sdk-base';
import '../../../types/events/internal/index.cjs';
import '../../../types/events/internal/events.cjs';
import '../../../types/events/internal/payloads.cjs';
import '../../../types/system.cjs';
import '../../../types/events/public/events.cjs';
import '../../../types/embed/v3/events/incoming.cjs';
import '../../../types/embed/v3/events/outgoing.cjs';
import '../../../types/embed/v3/events/EmbeddedCheckoutV3IFrameEmitter.cjs';
import '../../../types/payment-method-management/events/incoming.cjs';
import '../../../types/payment-method-management/events/outgoing.cjs';
import '../../../types/payment-method-management/events/PaymentMethodManagementIFrameEmitter.cjs';
import '../../../types/payment-method-management/OrderIntents.cjs';
import '../../../types/payment-method-management/PaymentMethodAgenticEnrollment.cjs';
import '../../../types/CryptoCurrency.cjs';

type CrossmintEmbeddedCheckoutV3ServiceProps = {
    apiClient: CrossmintApiClient;
};
declare function crossmintEmbeddedCheckoutV3Service({ apiClient }: CrossmintEmbeddedCheckoutV3ServiceProps): {
    iframe: {
        getUrl: (props: CrossmintEmbeddedCheckoutV3Props) => string;
        createClient: (iframe: HTMLIFrameElement) => IFrameWindow<{
            "ui:height.changed": z.ZodObject<{
                height: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                height: number;
            }, {
                height: number;
            }>;
            "crypto:load": z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
            "crypto:connect-wallet.show": z.ZodObject<{
                show: z.ZodBoolean;
            }, "strip", z.ZodTypeAny, {
                show: boolean;
            }, {
                show: boolean;
            }>;
            "crypto:send-transaction": z.ZodObject<{
                chain: z.ZodString;
                serializedTransaction: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                chain: string;
                serializedTransaction: string;
            }, {
                chain: string;
                serializedTransaction: string;
            }>;
            "crypto:sign-message": z.ZodObject<{
                message: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                message: string;
            }, {
                message: string;
            }>;
            "order:updated": z.ZodObject<{
                order: z.ZodOptional<z.ZodAny>;
                orderClientSecret: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                order?: any;
                orderClientSecret?: string | undefined;
            }, {
                order?: any;
                orderClientSecret?: string | undefined;
            }>;
            "order:creation-failed": z.ZodObject<{
                errorMessage: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                errorMessage: string;
            }, {
                errorMessage: string;
            }>;
        }, {
            "crypto:load.success": z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
            "crypto:connect-wallet.failed": z.ZodObject<{
                error: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                error: string;
            }, {
                error: string;
            }>;
            "crypto:connect-wallet.success": z.ZodObject<{
                address: z.ZodString;
                chain: z.ZodString;
                walletProviderKey: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                chain: string;
                address: string;
                walletProviderKey?: string | undefined;
            }, {
                chain: string;
                address: string;
                walletProviderKey?: string | undefined;
            }>;
            "crypto:send-transaction:success": z.ZodObject<{
                txId: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                txId: string;
            }, {
                txId: string;
            }>;
            "crypto:send-transaction:failed": z.ZodObject<{
                error: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                error: string;
            }, {
                error: string;
            }>;
            "crypto:sign-message:success": z.ZodObject<{
                signature: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                signature: string;
            }, {
                signature: string;
            }>;
            "crypto:sign-message:failed": z.ZodObject<{
                error: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                error: string;
            }, {
                error: string;
            }>;
        }>;
    };
};

export { type CrossmintEmbeddedCheckoutV3ServiceProps, crossmintEmbeddedCheckoutV3Service };
