import { z } from 'zod';

declare const schemes: readonly ["exact"];
declare const x402Versions: readonly [1];
declare const ErrorReasons: readonly ["insufficient_funds", "invalid_exact_evm_payload_authorization_valid_after", "invalid_exact_evm_payload_authorization_valid_before", "invalid_exact_evm_payload_authorization_value", "invalid_exact_evm_payload_signature", "invalid_exact_evm_payload_recipient_mismatch", "invalid_network", "invalid_payload", "invalid_payment_requirements", "invalid_scheme", "unsupported_scheme", "invalid_x402_version", "invalid_transaction_state", "unexpected_verify_error", "unexpected_settle_error"];
declare const PaymentRequirementsSchema: z.ZodObject<{
    scheme: z.ZodEnum<["exact"]>;
    network: z.ZodEnum<["base-sepolia", "base", "avalanche-fuji", "avalanche", "iotex"]>;
    maxAmountRequired: z.ZodEffects<z.ZodString, string, string>;
    resource: z.ZodString;
    description: z.ZodString;
    mimeType: z.ZodString;
    outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    payTo: z.ZodString;
    maxTimeoutSeconds: z.ZodNumber;
    asset: z.ZodString;
    extra: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
    scheme: "exact";
    description: string;
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    maxAmountRequired: string;
    resource: string;
    mimeType: string;
    payTo: string;
    maxTimeoutSeconds: number;
    asset: string;
    outputSchema?: Record<string, any> | undefined;
    extra?: Record<string, any> | undefined;
}, {
    scheme: "exact";
    description: string;
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    maxAmountRequired: string;
    resource: string;
    mimeType: string;
    payTo: string;
    maxTimeoutSeconds: number;
    asset: string;
    outputSchema?: Record<string, any> | undefined;
    extra?: Record<string, any> | undefined;
}>;
type PaymentRequirements = z.infer<typeof PaymentRequirementsSchema>;
declare const ExactEvmPayloadAuthorizationSchema: z.ZodObject<{
    from: z.ZodString;
    to: z.ZodString;
    value: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
    validAfter: z.ZodEffects<z.ZodString, string, string>;
    validBefore: z.ZodEffects<z.ZodString, string, string>;
    nonce: z.ZodString;
}, "strip", z.ZodTypeAny, {
    from: string;
    to: string;
    value: string;
    validAfter: string;
    validBefore: string;
    nonce: string;
}, {
    from: string;
    to: string;
    value: string;
    validAfter: string;
    validBefore: string;
    nonce: string;
}>;
type ExactEvmPayloadAuthorization = z.infer<typeof ExactEvmPayloadAuthorizationSchema>;
declare const ExactEvmPayloadSchema: z.ZodObject<{
    signature: z.ZodString;
    authorization: z.ZodObject<{
        from: z.ZodString;
        to: z.ZodString;
        value: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
        validAfter: z.ZodEffects<z.ZodString, string, string>;
        validBefore: z.ZodEffects<z.ZodString, string, string>;
        nonce: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        from: string;
        to: string;
        value: string;
        validAfter: string;
        validBefore: string;
        nonce: string;
    }, {
        from: string;
        to: string;
        value: string;
        validAfter: string;
        validBefore: string;
        nonce: string;
    }>;
}, "strip", z.ZodTypeAny, {
    signature: string;
    authorization: {
        from: string;
        to: string;
        value: string;
        validAfter: string;
        validBefore: string;
        nonce: string;
    };
}, {
    signature: string;
    authorization: {
        from: string;
        to: string;
        value: string;
        validAfter: string;
        validBefore: string;
        nonce: string;
    };
}>;
type ExactEvmPayload = z.infer<typeof ExactEvmPayloadSchema>;
declare const PaymentPayloadSchema: z.ZodObject<{
    x402Version: z.ZodEffects<z.ZodNumber, number, number>;
    scheme: z.ZodEnum<["exact"]>;
    network: z.ZodEnum<["base-sepolia", "base", "avalanche-fuji", "avalanche", "iotex"]>;
    payload: z.ZodObject<{
        signature: z.ZodString;
        authorization: z.ZodObject<{
            from: z.ZodString;
            to: z.ZodString;
            value: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
            validAfter: z.ZodEffects<z.ZodString, string, string>;
            validBefore: z.ZodEffects<z.ZodString, string, string>;
            nonce: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            from: string;
            to: string;
            value: string;
            validAfter: string;
            validBefore: string;
            nonce: string;
        }, {
            from: string;
            to: string;
            value: string;
            validAfter: string;
            validBefore: string;
            nonce: string;
        }>;
    }, "strip", z.ZodTypeAny, {
        signature: string;
        authorization: {
            from: string;
            to: string;
            value: string;
            validAfter: string;
            validBefore: string;
            nonce: string;
        };
    }, {
        signature: string;
        authorization: {
            from: string;
            to: string;
            value: string;
            validAfter: string;
            validBefore: string;
            nonce: string;
        };
    }>;
}, "strip", z.ZodTypeAny, {
    scheme: "exact";
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    x402Version: number;
    payload: {
        signature: string;
        authorization: {
            from: string;
            to: string;
            value: string;
            validAfter: string;
            validBefore: string;
            nonce: string;
        };
    };
}, {
    scheme: "exact";
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    x402Version: number;
    payload: {
        signature: string;
        authorization: {
            from: string;
            to: string;
            value: string;
            validAfter: string;
            validBefore: string;
            nonce: string;
        };
    };
}>;
type PaymentPayload = z.infer<typeof PaymentPayloadSchema>;
type UnsignedPaymentPayload = Omit<PaymentPayload, "payload"> & {
    payload: Omit<ExactEvmPayload, "signature"> & {
        signature: undefined;
    };
};
declare const VerifyResponseSchema: z.ZodObject<{
    isValid: z.ZodBoolean;
    invalidReason: z.ZodOptional<z.ZodEnum<["insufficient_funds", "invalid_exact_evm_payload_authorization_valid_after", "invalid_exact_evm_payload_authorization_valid_before", "invalid_exact_evm_payload_authorization_value", "invalid_exact_evm_payload_signature", "invalid_exact_evm_payload_recipient_mismatch", "invalid_network", "invalid_payload", "invalid_payment_requirements", "invalid_scheme", "unsupported_scheme", "invalid_x402_version", "invalid_transaction_state", "unexpected_verify_error", "unexpected_settle_error"]>>;
    payer: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    isValid: boolean;
    invalidReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_x402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
    payer?: string | undefined;
}, {
    isValid: boolean;
    invalidReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_x402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
    payer?: string | undefined;
}>;
type VerifyResponse = z.infer<typeof VerifyResponseSchema>;
declare const SettleResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    errorReason: z.ZodOptional<z.ZodEnum<["insufficient_funds", "invalid_exact_evm_payload_authorization_valid_after", "invalid_exact_evm_payload_authorization_valid_before", "invalid_exact_evm_payload_authorization_value", "invalid_exact_evm_payload_signature", "invalid_exact_evm_payload_recipient_mismatch", "invalid_network", "invalid_payload", "invalid_payment_requirements", "invalid_scheme", "unsupported_scheme", "invalid_x402_version", "invalid_transaction_state", "unexpected_verify_error", "unexpected_settle_error"]>>;
    payer: z.ZodOptional<z.ZodString>;
    transaction: z.ZodString;
    network: z.ZodEnum<["base-sepolia", "base", "avalanche-fuji", "avalanche", "iotex"]>;
}, "strip", z.ZodTypeAny, {
    transaction: string;
    success: boolean;
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    payer?: string | undefined;
    errorReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_x402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
}, {
    transaction: string;
    success: boolean;
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    payer?: string | undefined;
    errorReason?: "insufficient_funds" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_network" | "invalid_payload" | "invalid_payment_requirements" | "invalid_scheme" | "unsupported_scheme" | "invalid_x402_version" | "invalid_transaction_state" | "unexpected_verify_error" | "unexpected_settle_error" | undefined;
}>;
type SettleResponse = z.infer<typeof SettleResponseSchema>;
declare const SupportedPaymentKindSchema: z.ZodObject<{
    x402Version: z.ZodEffects<z.ZodNumber, number, number>;
    scheme: z.ZodEnum<["exact"]>;
    network: z.ZodEnum<["base-sepolia", "base", "avalanche-fuji", "avalanche", "iotex"]>;
}, "strip", z.ZodTypeAny, {
    scheme: "exact";
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    x402Version: number;
}, {
    scheme: "exact";
    network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
    x402Version: number;
}>;
type SupportedPaymentKind = z.infer<typeof SupportedPaymentKindSchema>;
declare const SupportedPaymentKindsResponseSchema: z.ZodObject<{
    kinds: z.ZodArray<z.ZodObject<{
        x402Version: z.ZodEffects<z.ZodNumber, number, number>;
        scheme: z.ZodEnum<["exact"]>;
        network: z.ZodEnum<["base-sepolia", "base", "avalanche-fuji", "avalanche", "iotex"]>;
    }, "strip", z.ZodTypeAny, {
        scheme: "exact";
        network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
        x402Version: number;
    }, {
        scheme: "exact";
        network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
        x402Version: number;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    kinds: {
        scheme: "exact";
        network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
        x402Version: number;
    }[];
}, {
    kinds: {
        scheme: "exact";
        network: "base-sepolia" | "avalanche-fuji" | "base" | "avalanche" | "iotex";
        x402Version: number;
    }[];
}>;
type SupportedPaymentKindsResponse = z.infer<typeof SupportedPaymentKindsResponseSchema>;

export { ErrorReasons as E, PaymentRequirementsSchema as P, type SettleResponse as S, type UnsignedPaymentPayload as U, VerifyResponseSchema as V, type PaymentRequirements as a, ExactEvmPayloadAuthorizationSchema as b, type ExactEvmPayloadAuthorization as c, ExactEvmPayloadSchema as d, type ExactEvmPayload as e, PaymentPayloadSchema as f, type PaymentPayload as g, type VerifyResponse as h, SettleResponseSchema as i, SupportedPaymentKindSchema as j, type SupportedPaymentKind as k, SupportedPaymentKindsResponseSchema as l, type SupportedPaymentKindsResponse as m, schemes as s, x402Versions as x };
