import { DataTransformerOptions, AnyRootConfig, BuildProcedure, inferParser, ProcedureRouterRecord, RootConfig, DefaultDataTransformer, TRPCError, ProcedureType, unsetMarker } from '@trpc/server';
import { TRPCErrorShape, TRPC_ERROR_CODE_NUMBER, TRPC_ERROR_CODE_KEY } from '@trpc/server/rpc';
import { OpenApiMeta } from 'trpc-openapi';
import { SomeZodObject, z } from 'zod';
import { RouterDef } from '@trpc/server/dist/core/router';
import { DefaultErrorData } from '@trpc/server/dist/error/formatter';
import * as _0x_utils from '@0x/utils';
import { ChainId as ChainId$1 } from '@0x/contract-addresses';

/**
 * Setup interfaces for `initTRPC`
 */
interface RpcSetup {
    ctx?: object;
    errorData?: Record<string, unknown>;
    meta?: object;
    transformer?: DataTransformerOptions;
}
type UnsetMarker = typeof unsetMarker;
type Parser = any extends inferParser<infer X> ? X : never;
/**
 * Define a procedure with a zod input and zod output
 */
type defineProcedure<TType extends 'query' | 'mutation', TInput, TOutput, TConfig extends AnyRootConfig> = BuildProcedure<TType, {
    _config: TConfig;
    _meta: any;
    _ctx_out: any;
    _input_in: TInput extends undefined ? UnsetMarker : TInput extends Parser ? inferParser<TInput>['in'] : TInput;
    _input_out: TInput extends undefined ? UnsetMarker : TInput extends Parser ? inferParser<TInput>['out'] : TInput;
    _output_in: TOutput extends undefined ? UnsetMarker : TOutput extends Parser ? inferParser<TOutput>['in'] : any;
    _output_out: TOutput extends undefined ? UnsetMarker : TOutput extends Parser ? inferParser<TOutput>['out'] : any;
}, TOutput extends undefined ? void : TOutput extends Parser ? inferParser<TOutput>['out'] : TOutput>;
/**
 * Define a router by specifying its procedures and
 * RPC setup.
 */
type defineRouter<TProcedures extends ProcedureRouterRecord, TTrpcSetup extends RpcSetup> = {
    _def: RouterDef<RootConfig<{
        ctx: TTrpcSetup extends {
            ctx: infer TCtx;
        } ? TCtx : any;
        meta: TTrpcSetup extends {
            meta: infer TMeta;
        } ? TMeta : any;
        errorShape: TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, inferErrorData<TTrpcSetup>>;
        transformer: TTrpcSetup['transformer'] extends object ? TTrpcSetup['transformer'] : DefaultDataTransformer;
    }>, TProcedures>;
    createCaller: any;
    getErrorShape: (opts: {
        error: TRPCError;
        type: ProcedureType | 'unknown';
        path: string | undefined;
        input: unknown;
        ctx: undefined | TTrpcSetup extends {
            ctx: infer TCtx;
        } ? TCtx : undefined;
    }) => TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, inferErrorData<TTrpcSetup>>;
};
type inferErrorData<TRpcSetup extends RpcSetup> = TRpcSetup extends {
    errorData: infer TErrorData;
} ? TErrorData extends Record<string, unknown> ? TErrorData : DefaultErrorData : DefaultErrorData;

type UvOpenApiMeta = NonNullable<OpenApiMeta['openapi']>;
type UvHeaders = UvOpenApiMeta['headers'];
/**
 * Describes the error that can be returned in the http response on an endpoint.
 * The response will the the HTTP version of `code` and the body will be a JSON object of:
 * ```
 * {
 *   name: string; // The name of the error
 *   message: string; // A human readable message generated at runtime
 *   data?: object; // Matches the output of `dataSchema`
 * }
 */
type UvError = {
    description: string;
    dataSchema: SomeZodObject;
    code: TRPC_ERROR_CODE_KEY;
};
/**
 * The definition of an endpoint needed to generate an OpenAPI spec,
 * create the type for a tRPC procedure, and create appropriate
 * documentation.
 */
type UvEndpoint<TErrors extends Record</* error name, e.g. MY_ERROR */ string, UvError>> = {
    input: z.ZodType;
    output: z.ZodType;
    enabledChainIds: number[];
    openApiMeta: UvOpenApiMeta;
    headers?: UvHeaders;
    errorNames: (keyof TErrors)[];
};
/**
 * A description of the endpoints that make up an API
 */
type UvEndpointTree<TErrors extends Record<string, UvError>> = {
    [key: string]: UvEndpointTree<TErrors> | UvEndpoint<TErrors>;
};
/**
 * Takes a router typescript definition and changes it to a TypeScript type
 */
type uvSpecToRouter<TProcedures extends UvEndpointTree<Record<string, UvError>>, TRpcSetup extends RpcSetup> = defineRouter<{
    [TKey in keyof TProcedures]: TKey extends string ? TProcedures[TKey] extends infer TValue ? TValue extends UvEndpoint<Record<string, UvError>> ? defineProcedure<TValue['openApiMeta']['method'] extends 'GET' ? 'query' : 'mutation', TValue['input'], TValue['output'], RootConfig<{
        ctx: TRpcSetup extends {
            ctx: infer TCtx;
        } ? TCtx : any;
        meta: TRpcSetup extends {
            meta: infer TMeta;
        } ? TMeta : any;
        errorShape: TRPCErrorShape<TRPC_ERROR_CODE_NUMBER, inferErrorData<TRpcSetup>>;
        transformer: TRpcSetup extends {
            transformer: infer TTransformer;
        } ? TTransformer : DefaultDataTransformer;
    }>> : TValue extends UvEndpointTree<Record<string, UvError>> ? uvSpecToRouter<TValue, TRpcSetup> : never : never : never;
}, TRpcSetup>;

type Eip712Object = {
    [key: string]: string | string[] | number | number[] | boolean | boolean[] | Eip712Object | Eip712Object[];
};

/**
 * Enum of chain ids used by 0x services
 */
declare enum ChainId {
    Ethereum = 1,
    Goerli = 5,
    Optimism = 10,
    BSC = 56,
    Polygon = 137,
    Fantom = 250,
    Ganache = 1337,
    Mantle = 5000,
    Base = 8453,
    Arbitrum = 42161,
    Avalanche = 43114,
    Celo = 42220,
    Linea = 59144,
    PolygonMumbai = 80001,
    Blast = 81457,
    Scroll = 534352,
    Sepolia = 11155111
}
/**
 * Supported chain ids for gasless v1
 */
declare const GASLESS_V1_CHAIN_IDS: ChainId$1[];
type GaslessV1ChainId = (typeof GASLESS_V1_CHAIN_IDS)[number];
/**
 * Supported chain ids for swap v2 (permit2 and allowance holder)
 */
declare const SWAP_V2_CHAIN_IDS: ChainId[];
type SwapV2ChainId = (typeof SWAP_V2_CHAIN_IDS)[number];
/**
 * Supported chain ids for gasless v2
 */
declare const GASLESS_V2_CHAIN_IDS: ChainId[];
type GaslessV2ChainId = (typeof GASLESS_V2_CHAIN_IDS)[number];

declare enum JobFailureReason {
    TransactionSimulationFailed = "transaction_simulation_failed",
    OrderExpired = "order_expired",
    LastLookDeclined = "last_look_declined",// deprecated
    TransactionReverted = "transaction_reverted",
    MarketMakerSignatureError = "market_maker_sigature_error",
    InvalidBalance = "invalid_balance",
    InternalError = "internal_error"
}

declare const uv2routerDefinition: {
    swap: {
        permit2: {
            getPrice: {
                openApiMeta: {
                    method: "GET";
                    path: "/swap/permit2/price";
                    summary: string;
                    description: string;
                    headers: ({
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example?: undefined;
                        };
                    } | {
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example: string;
                        };
                    })[];
                    example: {
                        request: {
                            chainId: number;
                            sellToken: string;
                            buyToken: string;
                            sellAmount: string;
                            taker: string;
                        };
                        response: {
                            blockNumber: string;
                            buyAmount: string;
                            buyToken: string;
                            fees: {
                                integratorFee: null;
                                zeroExFee: null;
                                gasFee: null;
                            };
                            gas: string;
                            gasPrice: string;
                            issues: {
                                allowance: {
                                    actual: string;
                                    spender: string;
                                };
                                balance: {
                                    token: string;
                                    actual: string;
                                    expected: string;
                                };
                                simulationIncomplete: boolean;
                                invalidSourcesPassed: never[];
                            };
                            liquidityAvailable: boolean;
                            minBuyAmount: string;
                            route: {
                                fills: {
                                    from: string;
                                    to: string;
                                    source: string;
                                    proportionBps: string;
                                }[];
                                tokens: {
                                    address: string;
                                    symbol: string;
                                }[];
                            };
                            sellAmount: string;
                            sellToken: string;
                            tokenMetadata: {
                                buyToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                                sellToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                            };
                            totalNetworkFee: string;
                            zid: string;
                        };
                    };
                };
                enabledChainIds: number[];
                input: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
                    chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                    buyToken: z.ZodString;
                    sellToken: z.ZodString;
                    sellAmount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>;
                    taker: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
                    txOrigin: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
                    swapFeeRecipient: z.ZodOptional<z.ZodString>;
                    swapFeeBps: z.ZodOptional<z.ZodNumber>;
                    swapFeeToken: z.ZodOptional<z.ZodString>;
                    tradeSurplusRecipient: z.ZodOptional<z.ZodString>;
                    gasPrice: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>>;
                    slippageBps: z.ZodDefault<z.ZodNumber>;
                    excludedSources: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>;
                output: z.ZodDiscriminatedUnion<"liquidityAvailable", [z.ZodObject<{
                    blockNumber: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyToken: z.ZodString;
                    fees: z.ZodObject<{
                        integratorFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        zeroExFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        gasFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["gas"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "gas";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        }>>;
                    }, "strip", z.ZodTypeAny, {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    }, {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    }>;
                    gas: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    gasPrice: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    issues: z.ZodObject<{
                        allowance: z.ZodNullable<z.ZodObject<{
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            spender: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            spender: string;
                            actual: string;
                        }, {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        balance: z.ZodNullable<z.ZodObject<{
                            token: z.ZodString;
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            expected: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            expected: string;
                            token: string;
                            actual: string;
                        }, {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        simulationIncomplete: z.ZodBoolean;
                        invalidSourcesPassed: z.ZodArray<z.ZodString, "many">;
                    }, "strip", z.ZodTypeAny, {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }, {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }>;
                    liquidityAvailable: z.ZodLiteral<true>;
                    minBuyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    route: z.ZodObject<{
                        fills: z.ZodArray<z.ZodObject<{
                            from: z.ZodString;
                            to: z.ZodString;
                            source: z.ZodString;
                            proportionBps: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }>, "many">;
                        tokens: z.ZodArray<z.ZodObject<{
                            address: z.ZodString;
                            symbol: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            symbol: string;
                            address: string;
                        }, {
                            symbol: string;
                            address: string;
                        }>, "many">;
                    }, "strip", z.ZodTypeAny, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    }, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    }>;
                    sellAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    sellToken: z.ZodString;
                    tokenMetadata: z.ZodObject<{
                        buyToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                        sellToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    }, {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    }>;
                    totalNetworkFee: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    fees: {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    gas: string | null;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: string;
                    minBuyAmount: string;
                    buyAmount: string;
                    blockNumber: string;
                    gasPrice: string;
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    };
                    totalNetworkFee: string | null;
                }, {
                    fees: {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    gas: _0x_utils.BigNumber | null;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    minBuyAmount: _0x_utils.BigNumber;
                    buyAmount: _0x_utils.BigNumber;
                    blockNumber: _0x_utils.BigNumber;
                    gasPrice: _0x_utils.BigNumber;
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    };
                    totalNetworkFee: _0x_utils.BigNumber | null;
                }>, z.ZodObject<{
                    liquidityAvailable: z.ZodLiteral<false>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    zid: string;
                    liquidityAvailable: false;
                }, {
                    zid: string;
                    liquidityAvailable: false;
                }>]>;
                errorNames: ("INTERNAL_SERVER_ERROR" | "BUY_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "INPUT_INVALID" | "SELL_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "SWAP_VALIDATION_FAILED" | "TAKER_NOT_AUTHORIZED_FOR_TRADE" | "TOKEN_NOT_SUPPORTED" | "UNCATEGORIZED")[];
            };
            getQuote: {
                openApiMeta: {
                    method: "GET";
                    path: "/swap/permit2/quote";
                    summary: string;
                    description: string;
                    headers: ({
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example?: undefined;
                        };
                    } | {
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example: string;
                        };
                    })[];
                    example: {
                        request: {
                            chainId: number;
                            sellToken: string;
                            buyToken: string;
                            sellAmount: string;
                            taker: string;
                        };
                        response: {
                            blockNumber: string;
                            buyAmount: string;
                            buyToken: string;
                            fees: {
                                integratorFee: null;
                                zeroExFee: null;
                                gasFee: null;
                            };
                            issues: {
                                allowance: {
                                    actual: string;
                                    spender: string;
                                };
                                balance: {
                                    token: string;
                                    actual: string;
                                    expected: string;
                                };
                                simulationIncomplete: boolean;
                                invalidSourcesPassed: never[];
                            };
                            liquidityAvailable: boolean;
                            minBuyAmount: string;
                            permit2: {
                                type: string;
                                hash: string;
                                eip712: {
                                    types: {
                                        PermitTransferFrom: {
                                            name: string;
                                            type: string;
                                        }[];
                                        TokenPermissions: {
                                            name: string;
                                            type: string;
                                        }[];
                                        EIP712Domain: {
                                            name: string;
                                            type: string;
                                        }[];
                                    };
                                    domain: {
                                        name: string;
                                        chainId: number;
                                        verifyingContract: string;
                                    };
                                    message: {
                                        permitted: {
                                            token: string;
                                            amount: string;
                                        };
                                        spender: string;
                                        nonce: string;
                                        deadline: string;
                                    };
                                    primaryType: string;
                                };
                            };
                            route: {
                                fills: {
                                    from: string;
                                    to: string;
                                    source: string;
                                    proportionBps: string;
                                }[];
                                tokens: {
                                    address: string;
                                    symbol: string;
                                }[];
                            };
                            sellAmount: string;
                            sellToken: string;
                            tokenMetadata: {
                                buyToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                                sellToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                            };
                            totalNetworkFee: string;
                            transaction: {
                                to: string;
                                data: string;
                                gas: string;
                                gasPrice: string;
                                value: string;
                            };
                            zid: string;
                        };
                    };
                };
                enabledChainIds: number[];
                input: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
                    chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                    buyToken: z.ZodString;
                    sellToken: z.ZodString;
                    sellAmount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>;
                    taker: z.ZodEffects<z.ZodString, string, string>;
                    txOrigin: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
                    swapFeeRecipient: z.ZodOptional<z.ZodString>;
                    swapFeeBps: z.ZodOptional<z.ZodNumber>;
                    swapFeeToken: z.ZodOptional<z.ZodString>;
                    tradeSurplusRecipient: z.ZodOptional<z.ZodString>;
                    gasPrice: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>>;
                    slippageBps: z.ZodDefault<z.ZodNumber>;
                    excludedSources: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>;
                output: z.ZodDiscriminatedUnion<"liquidityAvailable", [z.ZodObject<{
                    blockNumber: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyToken: z.ZodString;
                    fees: z.ZodObject<{
                        integratorFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        zeroExFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        gasFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["gas"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "gas";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        }>>;
                    }, "strip", z.ZodTypeAny, {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    }, {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    }>;
                    issues: z.ZodObject<{
                        allowance: z.ZodNullable<z.ZodObject<{
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            spender: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            spender: string;
                            actual: string;
                        }, {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        balance: z.ZodNullable<z.ZodObject<{
                            token: z.ZodString;
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            expected: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            expected: string;
                            token: string;
                            actual: string;
                        }, {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        simulationIncomplete: z.ZodBoolean;
                        invalidSourcesPassed: z.ZodArray<z.ZodString, "many">;
                    }, "strip", z.ZodTypeAny, {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }, {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }>;
                    liquidityAvailable: z.ZodLiteral<true>;
                    minBuyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    permit2: z.ZodNullable<z.ZodObject<{
                        type: z.ZodLiteral<"Permit2">;
                        hash: z.ZodString;
                        eip712: z.ZodObject<{
                            types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
                                name: z.ZodString;
                                type: z.ZodString;
                            }, "strip", z.ZodTypeAny, {
                                type: string;
                                name: string;
                            }, {
                                type: string;
                                name: string;
                            }>, "many">>;
                            domain: z.ZodObject<{
                                name: z.ZodOptional<z.ZodString>;
                                version: z.ZodOptional<z.ZodString>;
                                chainId: z.ZodOptional<z.ZodNumber>;
                                verifyingContract: z.ZodOptional<z.ZodString>;
                                salt: z.ZodOptional<z.ZodString>;
                            }, "strip", z.ZodTypeAny, {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            }, {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            }>;
                            message: z.ZodType<Eip712Object, z.ZodTypeDef, Eip712Object>;
                            primaryType: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            message: Eip712Object;
                            types: Record<string, {
                                type: string;
                                name: string;
                            }[]>;
                            domain: {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            };
                            primaryType: string;
                        }, {
                            message: Eip712Object;
                            types: Record<string, {
                                type: string;
                                name: string;
                            }[]>;
                            domain: {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            };
                            primaryType: string;
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        type: "Permit2";
                        hash: string;
                        eip712: {
                            message: Eip712Object;
                            types: Record<string, {
                                type: string;
                                name: string;
                            }[]>;
                            domain: {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            };
                            primaryType: string;
                        };
                    }, {
                        type: "Permit2";
                        hash: string;
                        eip712: {
                            message: Eip712Object;
                            types: Record<string, {
                                type: string;
                                name: string;
                            }[]>;
                            domain: {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            };
                            primaryType: string;
                        };
                    }>>;
                    route: z.ZodObject<{
                        fills: z.ZodArray<z.ZodObject<{
                            from: z.ZodString;
                            to: z.ZodString;
                            source: z.ZodString;
                            proportionBps: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }>, "many">;
                        tokens: z.ZodArray<z.ZodObject<{
                            address: z.ZodString;
                            symbol: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            symbol: string;
                            address: string;
                        }, {
                            symbol: string;
                            address: string;
                        }>, "many">;
                    }, "strip", z.ZodTypeAny, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    }, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    }>;
                    sellAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    sellToken: z.ZodString;
                    tokenMetadata: z.ZodObject<{
                        buyToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                        sellToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    }, {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    }>;
                    totalNetworkFee: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    transaction: z.ZodObject<{
                        to: z.ZodString;
                        data: z.ZodString;
                        gas: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        gasPrice: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        value: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        value: string;
                        data: string;
                        gas: string | null;
                        to: string;
                        gasPrice: string;
                    }, {
                        value: _0x_utils.BigNumber;
                        data: string;
                        gas: _0x_utils.BigNumber | null;
                        to: string;
                        gasPrice: _0x_utils.BigNumber;
                    }>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    fees: {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    permit2: {
                        type: "Permit2";
                        hash: string;
                        eip712: {
                            message: Eip712Object;
                            types: Record<string, {
                                type: string;
                                name: string;
                            }[]>;
                            domain: {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            };
                            primaryType: string;
                        };
                    } | null;
                    sellAmount: string;
                    minBuyAmount: string;
                    buyAmount: string;
                    blockNumber: string;
                    transaction: {
                        value: string;
                        data: string;
                        gas: string | null;
                        to: string;
                        gasPrice: string;
                    };
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    };
                    totalNetworkFee: string | null;
                }, {
                    fees: {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    permit2: {
                        type: "Permit2";
                        hash: string;
                        eip712: {
                            message: Eip712Object;
                            types: Record<string, {
                                type: string;
                                name: string;
                            }[]>;
                            domain: {
                                name?: string | undefined;
                                version?: string | undefined;
                                chainId?: number | undefined;
                                verifyingContract?: string | undefined;
                                salt?: string | undefined;
                            };
                            primaryType: string;
                        };
                    } | null;
                    sellAmount: _0x_utils.BigNumber;
                    minBuyAmount: _0x_utils.BigNumber;
                    buyAmount: _0x_utils.BigNumber;
                    blockNumber: _0x_utils.BigNumber;
                    transaction: {
                        value: _0x_utils.BigNumber;
                        data: string;
                        gas: _0x_utils.BigNumber | null;
                        to: string;
                        gasPrice: _0x_utils.BigNumber;
                    };
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    };
                    totalNetworkFee: _0x_utils.BigNumber | null;
                }>, z.ZodObject<{
                    liquidityAvailable: z.ZodLiteral<false>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    zid: string;
                    liquidityAvailable: false;
                }, {
                    zid: string;
                    liquidityAvailable: false;
                }>]>;
                errorNames: ("INTERNAL_SERVER_ERROR" | "BUY_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "INPUT_INVALID" | "SELL_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "SWAP_VALIDATION_FAILED" | "TAKER_NOT_AUTHORIZED_FOR_TRADE" | "TOKEN_NOT_SUPPORTED" | "UNCATEGORIZED")[];
            };
        };
        allowanceHolder: {
            getPrice: {
                openApiMeta: {
                    method: "GET";
                    path: "/swap/allowance-holder/price";
                    summary: string;
                    description: string;
                    headers: ({
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example?: undefined;
                        };
                    } | {
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example: string;
                        };
                    })[];
                    example: {
                        request: {
                            chainId: number;
                            sellToken: string;
                            buyToken: string;
                            sellAmount: string;
                            taker: string;
                        };
                        response: {
                            blockNumber: string;
                            buyAmount: string;
                            buyToken: string;
                            fees: {
                                integratorFee: null;
                                zeroExFee: null;
                                gasFee: null;
                            };
                            gas: string;
                            gasPrice: string;
                            issues: {
                                allowance: {
                                    actual: string;
                                    spender: string;
                                };
                                balance: {
                                    token: string;
                                    actual: string;
                                    expected: string;
                                };
                                simulationIncomplete: boolean;
                                invalidSourcesPassed: never[];
                            };
                            liquidityAvailable: boolean;
                            minBuyAmount: string;
                            route: {
                                fills: {
                                    from: string;
                                    to: string;
                                    source: string;
                                    proportionBps: string;
                                }[];
                                tokens: {
                                    address: string;
                                    symbol: string;
                                }[];
                            };
                            sellAmount: string;
                            sellToken: string;
                            tokenMetadata: {
                                buyToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                                sellToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                            };
                            totalNetworkFee: string;
                            zid: string;
                        };
                    };
                };
                enabledChainIds: number[];
                input: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
                    chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                    buyToken: z.ZodString;
                    sellToken: z.ZodString;
                    sellAmount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>;
                    taker: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
                    txOrigin: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
                    swapFeeRecipient: z.ZodOptional<z.ZodString>;
                    swapFeeBps: z.ZodOptional<z.ZodNumber>;
                    swapFeeToken: z.ZodOptional<z.ZodString>;
                    tradeSurplusRecipient: z.ZodOptional<z.ZodString>;
                    gasPrice: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>>;
                    slippageBps: z.ZodDefault<z.ZodNumber>;
                    excludedSources: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    taker?: string | undefined;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>;
                output: z.ZodDiscriminatedUnion<"liquidityAvailable", [z.ZodObject<{
                    blockNumber: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyToken: z.ZodString;
                    fees: z.ZodObject<{
                        integratorFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        zeroExFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        gasFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["gas"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "gas";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        }>>;
                    }, "strip", z.ZodTypeAny, {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    }, {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    }>;
                    gas: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    gasPrice: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    issues: z.ZodObject<{
                        allowance: z.ZodNullable<z.ZodObject<{
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            spender: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            spender: string;
                            actual: string;
                        }, {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        balance: z.ZodNullable<z.ZodObject<{
                            token: z.ZodString;
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            expected: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            expected: string;
                            token: string;
                            actual: string;
                        }, {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        simulationIncomplete: z.ZodBoolean;
                        invalidSourcesPassed: z.ZodArray<z.ZodString, "many">;
                    }, "strip", z.ZodTypeAny, {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }, {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }>;
                    liquidityAvailable: z.ZodLiteral<true>;
                    minBuyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    route: z.ZodObject<{
                        fills: z.ZodArray<z.ZodObject<{
                            from: z.ZodString;
                            to: z.ZodString;
                            source: z.ZodString;
                            proportionBps: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }>, "many">;
                        tokens: z.ZodArray<z.ZodObject<{
                            address: z.ZodString;
                            symbol: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            symbol: string;
                            address: string;
                        }, {
                            symbol: string;
                            address: string;
                        }>, "many">;
                    }, "strip", z.ZodTypeAny, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    }, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    }>;
                    sellAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    sellToken: z.ZodString;
                    tokenMetadata: z.ZodObject<{
                        buyToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                        sellToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    }, {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    }>;
                    totalNetworkFee: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    fees: {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    gas: string | null;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: string;
                    minBuyAmount: string;
                    buyAmount: string;
                    blockNumber: string;
                    gasPrice: string;
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    };
                    totalNetworkFee: string | null;
                }, {
                    fees: {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    gas: _0x_utils.BigNumber | null;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    minBuyAmount: _0x_utils.BigNumber;
                    buyAmount: _0x_utils.BigNumber;
                    blockNumber: _0x_utils.BigNumber;
                    gasPrice: _0x_utils.BigNumber;
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    };
                    totalNetworkFee: _0x_utils.BigNumber | null;
                }>, z.ZodObject<{
                    liquidityAvailable: z.ZodLiteral<false>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    zid: string;
                    liquidityAvailable: false;
                }, {
                    zid: string;
                    liquidityAvailable: false;
                }>]>;
                errorNames: ("INTERNAL_SERVER_ERROR" | "BUY_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "INPUT_INVALID" | "SELL_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "SWAP_VALIDATION_FAILED" | "TAKER_NOT_AUTHORIZED_FOR_TRADE" | "TOKEN_NOT_SUPPORTED" | "UNCATEGORIZED")[];
            };
            getQuote: {
                openApiMeta: {
                    method: "GET";
                    path: "/swap/allowance-holder/quote";
                    summary: string;
                    description: string;
                    headers: ({
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example?: undefined;
                        };
                    } | {
                        description: string;
                        in: "header";
                        name: string;
                        required: true;
                        schema: {
                            type: "string";
                            example: string;
                        };
                    })[];
                    example: {
                        request: {
                            chainId: number;
                            sellToken: string;
                            buyToken: string;
                            sellAmount: string;
                            taker: string;
                        };
                        response: {
                            blockNumber: string;
                            buyAmount: string;
                            buyToken: string;
                            fees: {
                                integratorFee: null;
                                zeroExFee: null;
                                gasFee: null;
                            };
                            issues: {
                                allowance: {
                                    actual: string;
                                    spender: string;
                                };
                                balance: {
                                    token: string;
                                    actual: string;
                                    expected: string;
                                };
                                simulationIncomplete: boolean;
                                invalidSourcesPassed: never[];
                            };
                            liquidityAvailable: boolean;
                            minBuyAmount: string;
                            route: {
                                fills: {
                                    from: string;
                                    to: string;
                                    source: string;
                                    proportionBps: string;
                                }[];
                                tokens: {
                                    address: string;
                                    symbol: string;
                                }[];
                            };
                            sellAmount: string;
                            sellToken: string;
                            tokenMetadata: {
                                buyToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                                sellToken: {
                                    buyTaxBps: string;
                                    sellTaxBps: string;
                                };
                            };
                            totalNetworkFee: string;
                            transaction: {
                                to: string;
                                data: string;
                                gas: string;
                                gasPrice: string;
                                value: string;
                            };
                            zid: string;
                        };
                    };
                };
                enabledChainIds: number[];
                input: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
                    chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                    buyToken: z.ZodString;
                    sellToken: z.ZodString;
                    sellAmount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>;
                    taker: z.ZodEffects<z.ZodString, string, string>;
                    txOrigin: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
                    swapFeeRecipient: z.ZodOptional<z.ZodString>;
                    swapFeeBps: z.ZodOptional<z.ZodNumber>;
                    swapFeeToken: z.ZodOptional<z.ZodString>;
                    tradeSurplusRecipient: z.ZodOptional<z.ZodString>;
                    gasPrice: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>>;
                    slippageBps: z.ZodDefault<z.ZodNumber>;
                    excludedSources: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>, {
                    taker: string;
                    chainId: ChainId;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    slippageBps: number;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: _0x_utils.BigNumber | undefined;
                    excludedSources?: string | undefined;
                }, {
                    taker: string;
                    chainId: number;
                    sellToken: string;
                    buyToken: string;
                    sellAmount?: unknown;
                    txOrigin?: string | undefined;
                    swapFeeRecipient?: string | undefined;
                    swapFeeBps?: number | undefined;
                    swapFeeToken?: string | undefined;
                    tradeSurplusRecipient?: string | undefined;
                    gasPrice?: unknown;
                    slippageBps?: number | undefined;
                    excludedSources?: string | undefined;
                }>;
                output: z.ZodDiscriminatedUnion<"liquidityAvailable", [z.ZodObject<{
                    blockNumber: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    buyToken: z.ZodString;
                    fees: z.ZodObject<{
                        integratorFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        zeroExFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["volume"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "volume";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        }>>;
                        gasFee: z.ZodNullable<z.ZodObject<{
                            amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            token: z.ZodString;
                            type: z.ZodEnum<["gas"]>;
                        }, "strip", z.ZodTypeAny, {
                            amount: string;
                            type: "gas";
                            token: string;
                        }, {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        }>>;
                    }, "strip", z.ZodTypeAny, {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    }, {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    }>;
                    issues: z.ZodObject<{
                        allowance: z.ZodNullable<z.ZodObject<{
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            spender: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            spender: string;
                            actual: string;
                        }, {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        balance: z.ZodNullable<z.ZodObject<{
                            token: z.ZodString;
                            actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                            expected: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            expected: string;
                            token: string;
                            actual: string;
                        }, {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        }>>;
                        simulationIncomplete: z.ZodBoolean;
                        invalidSourcesPassed: z.ZodArray<z.ZodString, "many">;
                    }, "strip", z.ZodTypeAny, {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }, {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    }>;
                    liquidityAvailable: z.ZodLiteral<true>;
                    minBuyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    route: z.ZodObject<{
                        fills: z.ZodArray<z.ZodObject<{
                            from: z.ZodString;
                            to: z.ZodString;
                            source: z.ZodString;
                            proportionBps: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }, {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }>, "many">;
                        tokens: z.ZodArray<z.ZodObject<{
                            address: z.ZodString;
                            symbol: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            symbol: string;
                            address: string;
                        }, {
                            symbol: string;
                            address: string;
                        }>, "many">;
                    }, "strip", z.ZodTypeAny, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    }, {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    }>;
                    sellAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    sellToken: z.ZodString;
                    tokenMetadata: z.ZodObject<{
                        buyToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                        sellToken: z.ZodObject<{
                            buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                            sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        }, "strip", z.ZodTypeAny, {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        }, {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    }, {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    }>;
                    totalNetworkFee: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    transaction: z.ZodObject<{
                        to: z.ZodString;
                        data: z.ZodString;
                        gas: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        gasPrice: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        value: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        value: string;
                        data: string;
                        gas: string | null;
                        to: string;
                        gasPrice: string;
                    }, {
                        value: _0x_utils.BigNumber;
                        data: string;
                        gas: _0x_utils.BigNumber | null;
                        to: string;
                        gasPrice: _0x_utils.BigNumber;
                    }>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    fees: {
                        integratorFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: string;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: string;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: string;
                    minBuyAmount: string;
                    buyAmount: string;
                    blockNumber: string;
                    transaction: {
                        value: string;
                        data: string;
                        gas: string | null;
                        to: string;
                        gasPrice: string;
                    };
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: string;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: string;
                            token: string;
                            actual: string;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: string;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                        buyToken: {
                            buyTaxBps: string | null;
                            sellTaxBps: string | null;
                        };
                    };
                    totalNetworkFee: string | null;
                }, {
                    fees: {
                        integratorFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        zeroExFee: {
                            amount: _0x_utils.BigNumber;
                            type: "volume";
                            token: string;
                        } | null;
                        gasFee: {
                            amount: _0x_utils.BigNumber;
                            type: "gas";
                            token: string;
                        } | null;
                    };
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    sellAmount: _0x_utils.BigNumber;
                    minBuyAmount: _0x_utils.BigNumber;
                    buyAmount: _0x_utils.BigNumber;
                    blockNumber: _0x_utils.BigNumber;
                    transaction: {
                        value: _0x_utils.BigNumber;
                        data: string;
                        gas: _0x_utils.BigNumber | null;
                        to: string;
                        gasPrice: _0x_utils.BigNumber;
                    };
                    route: {
                        tokens: {
                            symbol: string;
                            address: string;
                        }[];
                        fills: {
                            from: string;
                            to: string;
                            source: string;
                            proportionBps: _0x_utils.BigNumber;
                        }[];
                    };
                    issues: {
                        balance: {
                            expected: _0x_utils.BigNumber;
                            token: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        allowance: {
                            spender: string;
                            actual: _0x_utils.BigNumber;
                        } | null;
                        simulationIncomplete: boolean;
                        invalidSourcesPassed: string[];
                    };
                    liquidityAvailable: true;
                    tokenMetadata: {
                        sellToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                        buyToken: {
                            buyTaxBps: _0x_utils.BigNumber | null;
                            sellTaxBps: _0x_utils.BigNumber | null;
                        };
                    };
                    totalNetworkFee: _0x_utils.BigNumber | null;
                }>, z.ZodObject<{
                    liquidityAvailable: z.ZodLiteral<false>;
                    zid: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    zid: string;
                    liquidityAvailable: false;
                }, {
                    zid: string;
                    liquidityAvailable: false;
                }>]>;
                errorNames: ("INTERNAL_SERVER_ERROR" | "BUY_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "INPUT_INVALID" | "SELL_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "SWAP_VALIDATION_FAILED" | "TAKER_NOT_AUTHORIZED_FOR_TRADE" | "TOKEN_NOT_SUPPORTED" | "UNCATEGORIZED")[];
            };
        };
        getTrades: {
            openApiMeta: {
                method: "GET";
                path: "/swap/trades";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {};
            };
            enabledChainIds: number[];
            input: z.ZodEffects<z.ZodObject<{
                cursor: z.ZodOptional<z.ZodString>;
                startTimestamp: z.ZodOptional<z.ZodNumber>;
                endTimestamp: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }>, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }>;
            output: z.ZodObject<{
                nextCursor: z.ZodNullable<z.ZodString>;
                trades: z.ZodArray<z.ZodObject<{
                    taker: z.ZodString;
                    chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                    zid: z.ZodString;
                    sellToken: z.ZodString;
                    buyToken: z.ZodString;
                    gasUsed: z.ZodString;
                    blockNumber: z.ZodString;
                    timestamp: z.ZodNumber;
                    transactionHash: z.ZodString;
                    protocolVersion: z.ZodEnum<["0xV4", "Settler"]>;
                    appName: z.ZodString;
                    buyTokenSymbol: z.ZodString;
                    buyTokenAmount: z.ZodString;
                    integratorFeeToken: z.ZodString;
                    integratorFeeTokenSymbol: z.ZodString;
                    integratorFeeTokenAmount: z.ZodString;
                    integratorFeeUsdAmount: z.ZodString;
                    sellTokenSymbol: z.ZodString;
                    sellTokenAmount: z.ZodString;
                    slippageBps: z.ZodString;
                    volumeUsd: z.ZodString;
                    zeroExFeeToken: z.ZodString;
                    zeroExFeeTokenSymbol: z.ZodString;
                    zeroExFeeTokenAmoumt: z.ZodString;
                    zeroExFeeUsdAmount: z.ZodString;
                    service: z.ZodLiteral<"swap">;
                }, "strip", z.ZodTypeAny, {
                    taker: string;
                    chainId: ChainId;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "swap";
                }, {
                    taker: string;
                    chainId: number;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "swap";
                }>, "many">;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                zid: string;
                nextCursor: string | null;
                trades: {
                    taker: string;
                    chainId: ChainId;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "swap";
                }[];
            }, {
                zid: string;
                nextCursor: string | null;
                trades: {
                    taker: string;
                    chainId: number;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "swap";
                }[];
            }>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "INPUT_INVALID" | "NO_ACCESS_TO_TRADES_ENDPOINT" | "UNCATEGORIZED")[];
        };
    };
    gasless: {
        getPrice: {
            openApiMeta: {
                method: "GET";
                path: "/gasless/price";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {
                    request: {
                        chainId: number;
                        sellToken: string;
                        buyToken: string;
                        sellAmount: string;
                        taker: string;
                    };
                    response: {
                        blockNumber: string;
                        buyAmount: string;
                        buyToken: string;
                        fees: {
                            integratorFee: null;
                            zeroExFee: {
                                amount: string;
                                token: string;
                                type: string;
                            };
                            gasFee: {
                                amount: string;
                                token: string;
                                type: string;
                            };
                        };
                        issues: {
                            allowance: {
                                actual: string;
                                spender: string;
                            };
                            balance: {
                                token: string;
                                actual: string;
                                expected: string;
                            };
                            simulationIncomplete: boolean;
                            invalidSourcesPassed: never[];
                        };
                        liquidityAvailable: boolean;
                        minBuyAmount: string;
                        route: {
                            fills: {
                                from: string;
                                to: string;
                                source: string;
                                proportionBps: string;
                            }[];
                            tokens: {
                                address: string;
                                symbol: string;
                            }[];
                        };
                        sellAmount: string;
                        sellToken: string;
                        target: string;
                        tokenMetadata: {
                            buyToken: {
                                buyTaxBps: string;
                                sellTaxBps: string;
                            };
                            sellToken: {
                                buyTaxBps: string;
                                sellTaxBps: string;
                            };
                        };
                        zid: string;
                    };
                };
            };
            enabledChainIds: number[];
            input: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
                chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                buyToken: z.ZodString;
                sellToken: z.ZodString;
                sellAmount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>;
                taker: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
                swapFeeRecipient: z.ZodOptional<z.ZodString>;
                swapFeeBps: z.ZodOptional<z.ZodNumber>;
                swapFeeToken: z.ZodOptional<z.ZodString>;
                tradeSurplusRecipient: z.ZodOptional<z.ZodString>;
                slippageBps: z.ZodOptional<z.ZodNumber>;
                excludedSources: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                taker?: string | undefined;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>;
            output: z.ZodDiscriminatedUnion<"liquidityAvailable", [z.ZodObject<{
                blockNumber: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                buyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                buyToken: z.ZodString;
                fees: z.ZodObject<{
                    integratorFee: z.ZodNullable<z.ZodObject<{
                        amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        token: z.ZodString;
                        type: z.ZodEnum<["volume"]>;
                    }, "strip", z.ZodTypeAny, {
                        amount: string;
                        type: "volume";
                        token: string;
                    }, {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    }>>;
                    zeroExFee: z.ZodNullable<z.ZodObject<{
                        amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        token: z.ZodString;
                        type: z.ZodEnum<["volume"]>;
                    }, "strip", z.ZodTypeAny, {
                        amount: string;
                        type: "volume";
                        token: string;
                    }, {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    }>>;
                    gasFee: z.ZodNullable<z.ZodObject<{
                        amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        token: z.ZodString;
                        type: z.ZodEnum<["gas"]>;
                    }, "strip", z.ZodTypeAny, {
                        amount: string;
                        type: "gas";
                        token: string;
                    }, {
                        amount: _0x_utils.BigNumber;
                        type: "gas";
                        token: string;
                    }>>;
                }, "strip", z.ZodTypeAny, {
                    integratorFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: string;
                        type: "gas";
                        token: string;
                    } | null;
                }, {
                    integratorFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: _0x_utils.BigNumber;
                        type: "gas";
                        token: string;
                    } | null;
                }>;
                issues: z.ZodObject<{
                    allowance: z.ZodNullable<z.ZodObject<{
                        actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        spender: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        spender: string;
                        actual: string;
                    }, {
                        spender: string;
                        actual: _0x_utils.BigNumber;
                    }>>;
                    balance: z.ZodNullable<z.ZodObject<{
                        token: z.ZodString;
                        actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        expected: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        expected: string;
                        token: string;
                        actual: string;
                    }, {
                        expected: _0x_utils.BigNumber;
                        token: string;
                        actual: _0x_utils.BigNumber;
                    }>>;
                    simulationIncomplete: z.ZodBoolean;
                    invalidSourcesPassed: z.ZodArray<z.ZodString, "many">;
                }, "strip", z.ZodTypeAny, {
                    balance: {
                        expected: string;
                        token: string;
                        actual: string;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: string;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                }, {
                    balance: {
                        expected: _0x_utils.BigNumber;
                        token: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                }>;
                liquidityAvailable: z.ZodLiteral<true>;
                minBuyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                route: z.ZodObject<{
                    fills: z.ZodArray<z.ZodObject<{
                        from: z.ZodString;
                        to: z.ZodString;
                        source: z.ZodString;
                        proportionBps: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: string;
                    }, {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: _0x_utils.BigNumber;
                    }>, "many">;
                    tokens: z.ZodArray<z.ZodObject<{
                        address: z.ZodString;
                        symbol: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        symbol: string;
                        address: string;
                    }, {
                        symbol: string;
                        address: string;
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: string;
                    }[];
                }, {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: _0x_utils.BigNumber;
                    }[];
                }>;
                sellAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                sellToken: z.ZodString;
                target: z.ZodString;
                tokenMetadata: z.ZodObject<{
                    buyToken: z.ZodObject<{
                        buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    }, "strip", z.ZodTypeAny, {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    }, {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    }>;
                    sellToken: z.ZodObject<{
                        buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    }, "strip", z.ZodTypeAny, {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    }, {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    sellToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                    buyToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                }, {
                    sellToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                    buyToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                }>;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                fees: {
                    integratorFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: string;
                        type: "gas";
                        token: string;
                    } | null;
                };
                zid: string;
                sellToken: string;
                buyToken: string;
                sellAmount: string;
                minBuyAmount: string;
                buyAmount: string;
                blockNumber: string;
                target: string;
                route: {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: string;
                    }[];
                };
                issues: {
                    balance: {
                        expected: string;
                        token: string;
                        actual: string;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: string;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                };
                liquidityAvailable: true;
                tokenMetadata: {
                    sellToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                    buyToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                };
            }, {
                fees: {
                    integratorFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: _0x_utils.BigNumber;
                        type: "gas";
                        token: string;
                    } | null;
                };
                zid: string;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                minBuyAmount: _0x_utils.BigNumber;
                buyAmount: _0x_utils.BigNumber;
                blockNumber: _0x_utils.BigNumber;
                target: string;
                route: {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: _0x_utils.BigNumber;
                    }[];
                };
                issues: {
                    balance: {
                        expected: _0x_utils.BigNumber;
                        token: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                };
                liquidityAvailable: true;
                tokenMetadata: {
                    sellToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                    buyToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                };
            }>, z.ZodObject<{
                liquidityAvailable: z.ZodLiteral<false>;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                zid: string;
                liquidityAvailable: false;
            }, {
                zid: string;
                liquidityAvailable: false;
            }>]>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "SELL_AMOUNT_TOO_SMALL" | "BUY_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "INPUT_INVALID" | "SELL_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "SWAP_VALIDATION_FAILED" | "TAKER_NOT_AUTHORIZED_FOR_TRADE" | "TOKEN_NOT_SUPPORTED" | "UNCATEGORIZED")[];
        };
        getQuote: {
            openApiMeta: {
                method: "GET";
                path: "/gasless/quote";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {
                    request: {
                        chainId: number;
                        sellToken: string;
                        buyToken: string;
                        sellAmount: string;
                        taker: string;
                    };
                    response: {
                        approval: {
                            type: string;
                            hash: string;
                            eip712: {
                                types: {
                                    EIP712Domain: {
                                        name: string;
                                        type: string;
                                    }[];
                                    Permit: {
                                        name: string;
                                        type: string;
                                    }[];
                                };
                                domain: {
                                    name: string;
                                    version: string;
                                    chainId: number;
                                    verifyingContract: string;
                                };
                                message: {
                                    owner: string;
                                    spender: string;
                                    value: string;
                                    nonce: number;
                                    deadline: string;
                                };
                                primaryType: string;
                            };
                        };
                        blockNumber: string;
                        buyAmount: string;
                        buyToken: string;
                        fees: {
                            integratorFee: null;
                            zeroExFee: {
                                amount: string;
                                token: string;
                                type: string;
                            };
                            gasFee: {
                                amount: string;
                                token: string;
                                type: string;
                            };
                        };
                        issues: {
                            allowance: {
                                actual: string;
                                spender: string;
                            };
                            balance: {
                                token: string;
                                actual: string;
                                expected: string;
                            };
                            simulationIncomplete: boolean;
                            invalidSourcesPassed: never[];
                        };
                        liquidityAvailable: boolean;
                        minBuyAmount: string;
                        route: {
                            fills: {
                                from: string;
                                to: string;
                                source: string;
                                proportionBps: string;
                            }[];
                            tokens: {
                                address: string;
                                symbol: string;
                            }[];
                        };
                        sellAmount: string;
                        sellToken: string;
                        target: string;
                        tokenMetadata: {
                            buyToken: {
                                buyTaxBps: string;
                                sellTaxBps: string;
                            };
                            sellToken: {
                                buyTaxBps: string;
                                sellTaxBps: string;
                            };
                        };
                        trade: {
                            type: string;
                            hash: string;
                            eip712: {
                                types: {
                                    PermitWitnessTransferFrom: {
                                        name: string;
                                        type: string;
                                    }[];
                                    EIP712Domain: {
                                        name: string;
                                        type: string;
                                    }[];
                                    TokenPermissions: {
                                        name: string;
                                        type: string;
                                    }[];
                                    SlippageAndActions: {
                                        name: string;
                                        type: string;
                                    }[];
                                };
                                domain: {
                                    name: string;
                                    chainId: number;
                                    verifyingContract: string;
                                };
                                message: {
                                    permitted: {
                                        token: string;
                                        amount: string;
                                    };
                                    spender: string;
                                    nonce: string;
                                    deadline: string;
                                    slippageAndActions: {
                                        recipient: string;
                                        buyToken: string;
                                        minAmountOut: string;
                                        actions: string[];
                                    };
                                };
                                primaryType: string;
                            };
                        };
                        zid: string;
                    };
                };
            };
            enabledChainIds: number[];
            input: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
                chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                buyToken: z.ZodString;
                sellToken: z.ZodString;
                sellAmount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, string>, _0x_utils.BigNumber, unknown>;
                taker: z.ZodEffects<z.ZodString, string, string>;
                swapFeeRecipient: z.ZodOptional<z.ZodString>;
                swapFeeBps: z.ZodOptional<z.ZodNumber>;
                swapFeeToken: z.ZodOptional<z.ZodString>;
                tradeSurplusRecipient: z.ZodOptional<z.ZodString>;
                slippageBps: z.ZodOptional<z.ZodNumber>;
                excludedSources: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                taker: string;
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                taker: string;
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                taker: string;
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                taker: string;
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                taker: string;
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                taker: string;
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                taker: string;
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                taker: string;
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>, {
                taker: string;
                chainId: ChainId;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }, {
                taker: string;
                chainId: number;
                sellToken: string;
                buyToken: string;
                sellAmount?: unknown;
                swapFeeRecipient?: string | undefined;
                swapFeeBps?: number | undefined;
                swapFeeToken?: string | undefined;
                tradeSurplusRecipient?: string | undefined;
                slippageBps?: number | undefined;
                excludedSources?: string | undefined;
            }>;
            output: z.ZodDiscriminatedUnion<"liquidityAvailable", [z.ZodObject<{
                approval: z.ZodNullable<z.ZodObject<{
                    type: z.ZodEnum<["executeMetaTransaction::approve", "permit", "daiPermit"]>;
                    hash: z.ZodString;
                    eip712: z.ZodObject<{
                        types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
                            name: z.ZodString;
                            type: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            type: string;
                            name: string;
                        }, {
                            type: string;
                            name: string;
                        }>, "many">>;
                        domain: z.ZodObject<{
                            name: z.ZodOptional<z.ZodString>;
                            version: z.ZodOptional<z.ZodString>;
                            chainId: z.ZodOptional<z.ZodNumber>;
                            verifyingContract: z.ZodOptional<z.ZodString>;
                            salt: z.ZodOptional<z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }>;
                        message: z.ZodType<Eip712Object, z.ZodTypeDef, Eip712Object>;
                        primaryType: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    }, {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                }, {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                }>>;
                blockNumber: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                buyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                buyToken: z.ZodString;
                fees: z.ZodObject<{
                    integratorFee: z.ZodNullable<z.ZodObject<{
                        amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        token: z.ZodString;
                        type: z.ZodEnum<["volume"]>;
                    }, "strip", z.ZodTypeAny, {
                        amount: string;
                        type: "volume";
                        token: string;
                    }, {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    }>>;
                    zeroExFee: z.ZodNullable<z.ZodObject<{
                        amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        token: z.ZodString;
                        type: z.ZodEnum<["volume"]>;
                    }, "strip", z.ZodTypeAny, {
                        amount: string;
                        type: "volume";
                        token: string;
                    }, {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    }>>;
                    gasFee: z.ZodNullable<z.ZodObject<{
                        amount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        token: z.ZodString;
                        type: z.ZodEnum<["gas"]>;
                    }, "strip", z.ZodTypeAny, {
                        amount: string;
                        type: "gas";
                        token: string;
                    }, {
                        amount: _0x_utils.BigNumber;
                        type: "gas";
                        token: string;
                    }>>;
                }, "strip", z.ZodTypeAny, {
                    integratorFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: string;
                        type: "gas";
                        token: string;
                    } | null;
                }, {
                    integratorFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: _0x_utils.BigNumber;
                        type: "gas";
                        token: string;
                    } | null;
                }>;
                issues: z.ZodObject<{
                    allowance: z.ZodNullable<z.ZodObject<{
                        actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        spender: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        spender: string;
                        actual: string;
                    }, {
                        spender: string;
                        actual: _0x_utils.BigNumber;
                    }>>;
                    balance: z.ZodNullable<z.ZodObject<{
                        token: z.ZodString;
                        actual: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                        expected: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        expected: string;
                        token: string;
                        actual: string;
                    }, {
                        expected: _0x_utils.BigNumber;
                        token: string;
                        actual: _0x_utils.BigNumber;
                    }>>;
                    simulationIncomplete: z.ZodBoolean;
                    invalidSourcesPassed: z.ZodArray<z.ZodString, "many">;
                }, "strip", z.ZodTypeAny, {
                    balance: {
                        expected: string;
                        token: string;
                        actual: string;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: string;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                }, {
                    balance: {
                        expected: _0x_utils.BigNumber;
                        token: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                }>;
                liquidityAvailable: z.ZodLiteral<true>;
                minBuyAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                route: z.ZodObject<{
                    fills: z.ZodArray<z.ZodObject<{
                        from: z.ZodString;
                        to: z.ZodString;
                        source: z.ZodString;
                        proportionBps: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                    }, "strip", z.ZodTypeAny, {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: string;
                    }, {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: _0x_utils.BigNumber;
                    }>, "many">;
                    tokens: z.ZodArray<z.ZodObject<{
                        address: z.ZodString;
                        symbol: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        symbol: string;
                        address: string;
                    }, {
                        symbol: string;
                        address: string;
                    }>, "many">;
                }, "strip", z.ZodTypeAny, {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: string;
                    }[];
                }, {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: _0x_utils.BigNumber;
                    }[];
                }>;
                sellAmount: z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>;
                sellToken: z.ZodString;
                target: z.ZodString;
                tokenMetadata: z.ZodObject<{
                    buyToken: z.ZodObject<{
                        buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    }, "strip", z.ZodTypeAny, {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    }, {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    }>;
                    sellToken: z.ZodObject<{
                        buyTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                        sellTaxBps: z.ZodNullable<z.ZodPipeline<z.ZodEffects<z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>, _0x_utils.BigNumber, _0x_utils.BigNumber>, z.ZodString>>;
                    }, "strip", z.ZodTypeAny, {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    }, {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    sellToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                    buyToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                }, {
                    sellToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                    buyToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                }>;
                trade: z.ZodObject<{
                    type: z.ZodEnum<["settler_metatransaction"]>;
                    hash: z.ZodString;
                    eip712: z.ZodObject<{
                        types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
                            name: z.ZodString;
                            type: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            type: string;
                            name: string;
                        }, {
                            type: string;
                            name: string;
                        }>, "many">>;
                        domain: z.ZodObject<{
                            name: z.ZodOptional<z.ZodString>;
                            version: z.ZodOptional<z.ZodString>;
                            chainId: z.ZodOptional<z.ZodNumber>;
                            verifyingContract: z.ZodOptional<z.ZodString>;
                            salt: z.ZodOptional<z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }>;
                        message: z.ZodType<Eip712Object, z.ZodTypeDef, Eip712Object>;
                        primaryType: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    }, {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "settler_metatransaction";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                }, {
                    type: "settler_metatransaction";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                }>;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                fees: {
                    integratorFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: string;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: string;
                        type: "gas";
                        token: string;
                    } | null;
                };
                zid: string;
                sellToken: string;
                buyToken: string;
                sellAmount: string;
                minBuyAmount: string;
                buyAmount: string;
                blockNumber: string;
                target: string;
                approval: {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                } | null;
                route: {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: string;
                    }[];
                };
                issues: {
                    balance: {
                        expected: string;
                        token: string;
                        actual: string;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: string;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                };
                liquidityAvailable: true;
                trade: {
                    type: "settler_metatransaction";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                };
                tokenMetadata: {
                    sellToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                    buyToken: {
                        buyTaxBps: string | null;
                        sellTaxBps: string | null;
                    };
                };
            }, {
                fees: {
                    integratorFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    zeroExFee: {
                        amount: _0x_utils.BigNumber;
                        type: "volume";
                        token: string;
                    } | null;
                    gasFee: {
                        amount: _0x_utils.BigNumber;
                        type: "gas";
                        token: string;
                    } | null;
                };
                zid: string;
                sellToken: string;
                buyToken: string;
                sellAmount: _0x_utils.BigNumber;
                minBuyAmount: _0x_utils.BigNumber;
                buyAmount: _0x_utils.BigNumber;
                blockNumber: _0x_utils.BigNumber;
                target: string;
                approval: {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                } | null;
                route: {
                    tokens: {
                        symbol: string;
                        address: string;
                    }[];
                    fills: {
                        from: string;
                        to: string;
                        source: string;
                        proportionBps: _0x_utils.BigNumber;
                    }[];
                };
                issues: {
                    balance: {
                        expected: _0x_utils.BigNumber;
                        token: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    allowance: {
                        spender: string;
                        actual: _0x_utils.BigNumber;
                    } | null;
                    simulationIncomplete: boolean;
                    invalidSourcesPassed: string[];
                };
                liquidityAvailable: true;
                trade: {
                    type: "settler_metatransaction";
                    hash: string;
                    eip712: {
                        message: Eip712Object;
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                };
                tokenMetadata: {
                    sellToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                    buyToken: {
                        buyTaxBps: _0x_utils.BigNumber | null;
                        sellTaxBps: _0x_utils.BigNumber | null;
                    };
                };
            }>, z.ZodObject<{
                liquidityAvailable: z.ZodLiteral<false>;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                zid: string;
                liquidityAvailable: false;
            }, {
                zid: string;
                liquidityAvailable: false;
            }>]>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "SELL_AMOUNT_TOO_SMALL" | "BUY_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "INPUT_INVALID" | "INSUFFICIENT_BALANCE" | "SELL_TOKEN_NOT_AUTHORIZED_FOR_TRADE" | "SWAP_VALIDATION_FAILED" | "TAKER_NOT_AUTHORIZED_FOR_TRADE" | "TOKEN_NOT_SUPPORTED" | "UNCATEGORIZED")[];
        };
        submit: {
            openApiMeta: {
                method: "POST";
                path: "/gasless/submit";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {
                    request: {
                        approval: {
                            type: string;
                            hash: string;
                            eip712: {
                                types: {
                                    EIP712Domain: {
                                        name: string;
                                        type: string;
                                    }[];
                                    Permit: {
                                        name: string;
                                        type: string;
                                    }[];
                                };
                                domain: {
                                    name: string;
                                    version: string;
                                    chainId: number;
                                    verifyingContract: string;
                                };
                                message: {
                                    owner: string;
                                    spender: string;
                                    value: string;
                                    nonce: number;
                                    deadline: string;
                                };
                                primaryType: string;
                            };
                            signature: {
                                v: number;
                                r: string;
                                s: string;
                                signatureType: number;
                            };
                        };
                        chainId: number;
                        trade: {
                            type: string;
                            hash: string;
                            eip712: {
                                types: {
                                    PermitWitnessTransferFrom: {
                                        name: string;
                                        type: string;
                                    }[];
                                    TokenPermissions: {
                                        name: string;
                                        type: string;
                                    }[];
                                    EIP712Domain: {
                                        name: string;
                                        type: string;
                                    }[];
                                    SlippageAndActions: {
                                        name: string;
                                        type: string;
                                    }[];
                                };
                                domain: {
                                    name: string;
                                    chainId: number;
                                    verifyingContract: string;
                                };
                                message: {
                                    permitted: {
                                        token: string;
                                        amount: string;
                                    };
                                    spender: string;
                                    nonce: string;
                                    deadline: string;
                                    slippageAndActions: {
                                        recipient: string;
                                        buyToken: string;
                                        minAmountOut: string;
                                        actions: string[];
                                    };
                                };
                                primaryType: string;
                            };
                            signature: {
                                v: number;
                                r: string;
                                s: string;
                                signatureType: number;
                            };
                        };
                    };
                    response: {
                        tradeHash: string;
                        type: string;
                        zid: string;
                    };
                };
            };
            enabledChainIds: number[];
            input: z.ZodObject<{
                chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                approval: z.ZodOptional<z.ZodNullable<z.ZodObject<{
                    type: z.ZodEnum<["executeMetaTransaction::approve", "permit", "daiPermit"]>;
                    eip712: z.ZodUnion<[z.ZodObject<{
                        types: z.ZodObject<{
                            EIP712Domain: z.ZodArray<z.ZodObject<{
                                name: z.ZodString;
                                type: z.ZodString;
                            }, "strip", z.ZodTypeAny, {
                                type: string;
                                name: string;
                            }, {
                                type: string;
                                name: string;
                            }>, "many">;
                            Permit: z.ZodArray<z.ZodObject<{
                                name: z.ZodString;
                                type: z.ZodString;
                            }, "strip", z.ZodTypeAny, {
                                type: string;
                                name: string;
                            }, {
                                type: string;
                                name: string;
                            }>, "many">;
                        }, "strip", z.ZodTypeAny, {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        }, {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        }>;
                        domain: z.ZodObject<{
                            name: z.ZodOptional<z.ZodString>;
                            version: z.ZodOptional<z.ZodString>;
                            chainId: z.ZodOptional<z.ZodNumber>;
                            verifyingContract: z.ZodOptional<z.ZodString>;
                            salt: z.ZodOptional<z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }>;
                        message: z.ZodObject<{
                            owner: z.ZodString;
                            spender: z.ZodString;
                            value: z.ZodString;
                            nonce: z.ZodNumber;
                            deadline: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        }, {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        }>;
                        primaryType: z.ZodLiteral<"Permit">;
                    }, "strip", z.ZodTypeAny, {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }, {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }>, z.ZodObject<{
                        types: z.ZodObject<{
                            EIP712Domain: z.ZodArray<z.ZodObject<{
                                name: z.ZodString;
                                type: z.ZodString;
                            }, "strip", z.ZodTypeAny, {
                                type: string;
                                name: string;
                            }, {
                                type: string;
                                name: string;
                            }>, "many">;
                            Permit: z.ZodArray<z.ZodObject<{
                                name: z.ZodString;
                                type: z.ZodString;
                            }, "strip", z.ZodTypeAny, {
                                type: string;
                                name: string;
                            }, {
                                type: string;
                                name: string;
                            }>, "many">;
                        }, "strip", z.ZodTypeAny, {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        }, {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        }>;
                        domain: z.ZodObject<{
                            name: z.ZodOptional<z.ZodString>;
                            version: z.ZodOptional<z.ZodString>;
                            chainId: z.ZodOptional<z.ZodNumber>;
                            verifyingContract: z.ZodOptional<z.ZodString>;
                            salt: z.ZodOptional<z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }>;
                        message: z.ZodObject<{
                            holder: z.ZodString;
                            spender: z.ZodString;
                            nonce: z.ZodNumber;
                            expiry: z.ZodString;
                            allowed: z.ZodBoolean;
                        }, "strip", z.ZodTypeAny, {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        }, {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        }>;
                        primaryType: z.ZodLiteral<"Permit">;
                    }, "strip", z.ZodTypeAny, {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }, {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }>, z.ZodObject<{
                        types: z.ZodObject<{
                            EIP712Domain: z.ZodArray<z.ZodObject<{
                                name: z.ZodString;
                                type: z.ZodString;
                            }, "strip", z.ZodTypeAny, {
                                type: string;
                                name: string;
                            }, {
                                type: string;
                                name: string;
                            }>, "many">;
                            MetaTransaction: z.ZodArray<z.ZodObject<{
                                name: z.ZodString;
                                type: z.ZodString;
                            }, "strip", z.ZodTypeAny, {
                                type: string;
                                name: string;
                            }, {
                                type: string;
                                name: string;
                            }>, "many">;
                        }, "strip", z.ZodTypeAny, {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        }, {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        }>;
                        domain: z.ZodObject<{
                            name: z.ZodOptional<z.ZodString>;
                            version: z.ZodOptional<z.ZodString>;
                            chainId: z.ZodOptional<z.ZodNumber>;
                            verifyingContract: z.ZodOptional<z.ZodString>;
                            salt: z.ZodOptional<z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }>;
                        message: z.ZodObject<{
                            nonce: z.ZodNumber;
                            from: z.ZodString;
                            functionSignature: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        }, {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        }>;
                        primaryType: z.ZodLiteral<"MetaTransaction">;
                    }, "strip", z.ZodTypeAny, {
                        message: {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        };
                        types: {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "MetaTransaction";
                    }, {
                        message: {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        };
                        types: {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "MetaTransaction";
                    }>]>;
                    signature: z.ZodObject<{
                        signatureType: z.ZodNumber;
                        v: z.ZodNumber;
                        r: z.ZodString;
                        s: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    }, {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        };
                        types: {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "MetaTransaction";
                    } | ({
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }) | ({
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    });
                }, {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        };
                        types: {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "MetaTransaction";
                    } | ({
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }) | ({
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    });
                }>>>;
                trade: z.ZodObject<{
                    type: z.ZodEnum<["settler_metatransaction"]>;
                    eip712: z.ZodObject<{
                        types: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
                            name: z.ZodString;
                            type: z.ZodString;
                        }, "strip", z.ZodTypeAny, {
                            type: string;
                            name: string;
                        }, {
                            type: string;
                            name: string;
                        }>, "many">>;
                        primaryType: z.ZodString;
                        domain: z.ZodObject<{
                            name: z.ZodOptional<z.ZodString>;
                            version: z.ZodOptional<z.ZodString>;
                            chainId: z.ZodOptional<z.ZodNumber>;
                            verifyingContract: z.ZodOptional<z.ZodString>;
                            salt: z.ZodOptional<z.ZodString>;
                        }, "strip", z.ZodTypeAny, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }, {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        }>;
                        message: z.ZodObject<{
                            permitted: z.ZodObject<{
                                token: z.ZodString;
                                amount: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>]>, _0x_utils.BigNumber, string | number | _0x_utils.BigNumber>;
                            }, "strip", z.ZodTypeAny, {
                                amount: _0x_utils.BigNumber;
                                token: string;
                            }, {
                                amount: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                token: string;
                            }>;
                            spender: z.ZodString;
                            nonce: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>]>, _0x_utils.BigNumber, string | number | _0x_utils.BigNumber>;
                            deadline: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>]>, _0x_utils.BigNumber, string | number | _0x_utils.BigNumber>;
                            slippageAndActions: z.ZodObject<{
                                recipient: z.ZodString;
                                buyToken: z.ZodString;
                                minAmountOut: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodType<_0x_utils.BigNumber, z.ZodTypeDef, _0x_utils.BigNumber>]>, _0x_utils.BigNumber, string | number | _0x_utils.BigNumber>;
                                actions: z.ZodArray<z.ZodString, "many">;
                            }, "strip", z.ZodTypeAny, {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: _0x_utils.BigNumber;
                                actions: string[];
                            }, {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                actions: string[];
                            }>;
                        }, "strip", z.ZodTypeAny, {
                            nonce: _0x_utils.BigNumber;
                            spender: string;
                            deadline: _0x_utils.BigNumber;
                            permitted: {
                                amount: _0x_utils.BigNumber;
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: _0x_utils.BigNumber;
                                actions: string[];
                            };
                        }, {
                            nonce: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            spender: string;
                            deadline: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            permitted: {
                                amount: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                actions: string[];
                            };
                        }>;
                    }, "strip", z.ZodTypeAny, {
                        message: {
                            nonce: _0x_utils.BigNumber;
                            spender: string;
                            deadline: _0x_utils.BigNumber;
                            permitted: {
                                amount: _0x_utils.BigNumber;
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: _0x_utils.BigNumber;
                                actions: string[];
                            };
                        };
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    }, {
                        message: {
                            nonce: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            spender: string;
                            deadline: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            permitted: {
                                amount: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                actions: string[];
                            };
                        };
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    }>;
                    signature: z.ZodObject<{
                        signatureType: z.ZodNumber;
                        v: z.ZodNumber;
                        r: z.ZodString;
                        s: z.ZodString;
                    }, "strip", z.ZodTypeAny, {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    }, {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    }>;
                }, "strip", z.ZodTypeAny, {
                    type: "settler_metatransaction";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: _0x_utils.BigNumber;
                            spender: string;
                            deadline: _0x_utils.BigNumber;
                            permitted: {
                                amount: _0x_utils.BigNumber;
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: _0x_utils.BigNumber;
                                actions: string[];
                            };
                        };
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                }, {
                    type: "settler_metatransaction";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            spender: string;
                            deadline: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            permitted: {
                                amount: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                actions: string[];
                            };
                        };
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                }>;
            }, "strip", z.ZodTypeAny, {
                chainId: ChainId;
                trade: {
                    type: "settler_metatransaction";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: _0x_utils.BigNumber;
                            spender: string;
                            deadline: _0x_utils.BigNumber;
                            permitted: {
                                amount: _0x_utils.BigNumber;
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: _0x_utils.BigNumber;
                                actions: string[];
                            };
                        };
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                };
                approval?: {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        };
                        types: {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "MetaTransaction";
                    } | ({
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }) | ({
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    });
                } | null | undefined;
            }, {
                chainId: number;
                trade: {
                    type: "settler_metatransaction";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            spender: string;
                            deadline: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                            permitted: {
                                amount: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                token: string;
                            };
                            slippageAndActions: {
                                recipient: string;
                                buyToken: string;
                                minAmountOut: (string | number | _0x_utils.BigNumber) & (string | number | _0x_utils.BigNumber | undefined);
                                actions: string[];
                            };
                        };
                        types: Record<string, {
                            type: string;
                            name: string;
                        }[]>;
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: string;
                    };
                };
                approval?: {
                    type: "executeMetaTransaction::approve" | "permit" | "daiPermit";
                    signature: {
                        signatureType: number;
                        v: number;
                        r: string;
                        s: string;
                    };
                    eip712: {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } | {
                        message: {
                            nonce: number;
                            from: string;
                            functionSignature: string;
                        };
                        types: {
                            MetaTransaction: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "MetaTransaction";
                    } | ({
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    }) | ({
                        message: {
                            nonce: number;
                            spender: string;
                            holder: string;
                            expiry: string;
                            allowed: boolean;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    } & {
                        message: {
                            nonce: number;
                            owner: string;
                            spender: string;
                            value: string;
                            deadline: string;
                        };
                        types: {
                            Permit: {
                                type: string;
                                name: string;
                            }[];
                            EIP712Domain: {
                                type: string;
                                name: string;
                            }[];
                        };
                        domain: {
                            name?: string | undefined;
                            version?: string | undefined;
                            chainId?: number | undefined;
                            verifyingContract?: string | undefined;
                            salt?: string | undefined;
                        };
                        primaryType: "Permit";
                    });
                } | null | undefined;
            }>;
            output: z.ZodObject<{
                tradeHash: z.ZodString;
                type: z.ZodEnum<["settler_metatransaction"]>;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                type: "settler_metatransaction";
                zid: string;
                tradeHash: string;
            }, {
                type: "settler_metatransaction";
                zid: string;
                tradeHash: string;
            }>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "INPUT_INVALID" | "INSUFFICIENT_BALANCE_OR_ALLOWANCE" | "INVALID_SIGNATURE" | "INVALID_SIGNER" | "META_TRANSACTION_EXPIRY_TOO_SOON" | "META_TRANSACTION_INVALID" | "PENDING_TRADES_ALREADY_EXIST" | "UNCATEGORIZED")[];
        };
        getStatus: {
            openApiMeta: {
                method: "GET";
                path: "/gasless/status/{tradeHash}";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {
                    request: {
                        chainId: number;
                        tradeHash: string;
                    };
                    response: {
                        status: string;
                        transactions: {
                            hash: string;
                            timestamp: number;
                        }[];
                        zid: string;
                    };
                };
            };
            enabledChainIds: number[];
            input: z.ZodObject<{
                chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                tradeHash: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                chainId: ChainId;
                tradeHash: string;
            }, {
                chainId: number;
                tradeHash: string;
            }>;
            output: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
                approvalTransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    hash: z.ZodString;
                    timestamp: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    hash: string;
                    timestamp: number;
                }, {
                    hash: string;
                    timestamp: number;
                }>, "many">>;
                status: z.ZodEnum<["pending", "submitted", "succeeded", "confirmed"]>;
                transactions: z.ZodArray<z.ZodObject<{
                    hash: z.ZodString;
                    timestamp: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    hash: string;
                    timestamp: number;
                }, {
                    hash: string;
                    timestamp: number;
                }>, "many">;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                status: "pending" | "submitted" | "succeeded" | "confirmed";
                zid: string;
                transactions: {
                    hash: string;
                    timestamp: number;
                }[];
                approvalTransactions?: {
                    hash: string;
                    timestamp: number;
                }[] | undefined;
            }, {
                status: "pending" | "submitted" | "succeeded" | "confirmed";
                zid: string;
                transactions: {
                    hash: string;
                    timestamp: number;
                }[];
                approvalTransactions?: {
                    hash: string;
                    timestamp: number;
                }[] | undefined;
            }>, z.ZodObject<{
                approvalTransactions: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    hash: z.ZodString;
                    timestamp: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    hash: string;
                    timestamp: number;
                }, {
                    hash: string;
                    timestamp: number;
                }>, "many">>;
                reason: z.ZodNativeEnum<typeof JobFailureReason>;
                status: z.ZodLiteral<"failed">;
                transactions: z.ZodArray<z.ZodObject<{
                    hash: z.ZodString;
                    timestamp: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    hash: string;
                    timestamp: number;
                }, {
                    hash: string;
                    timestamp: number;
                }>, "many">;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                status: "failed";
                zid: string;
                transactions: {
                    hash: string;
                    timestamp: number;
                }[];
                reason: JobFailureReason;
                approvalTransactions?: {
                    hash: string;
                    timestamp: number;
                }[] | undefined;
            }, {
                status: "failed";
                zid: string;
                transactions: {
                    hash: string;
                    timestamp: number;
                }[];
                reason: JobFailureReason;
                approvalTransactions?: {
                    hash: string;
                    timestamp: number;
                }[] | undefined;
            }>]>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "INPUT_INVALID" | "META_TRANSACTION_STATUS_NOT_FOUND" | "UNCATEGORIZED")[];
        };
        getGaslessApprovalTokens: {
            openApiMeta: {
                method: "GET";
                path: "/gasless/gasless-approval-tokens";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {
                    request: {
                        chainId: number;
                    };
                    response: {
                        tokens: string[];
                        zid: string;
                    };
                };
            };
            enabledChainIds: number[];
            input: z.ZodObject<{
                chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
            }, "strip", z.ZodTypeAny, {
                chainId: ChainId;
            }, {
                chainId: number;
            }>;
            output: z.ZodObject<{
                tokens: z.ZodArray<z.ZodString, "many">;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                zid: string;
                tokens: string[];
            }, {
                zid: string;
                tokens: string[];
            }>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "INPUT_INVALID" | "UNCATEGORIZED")[];
        };
        getTrades: {
            openApiMeta: {
                method: "GET";
                path: "/gasless/trades";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {};
            };
            enabledChainIds: number[];
            input: z.ZodEffects<z.ZodObject<{
                cursor: z.ZodOptional<z.ZodString>;
                startTimestamp: z.ZodOptional<z.ZodNumber>;
                endTimestamp: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }>, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }, {
                cursor?: string | undefined;
                startTimestamp?: number | undefined;
                endTimestamp?: number | undefined;
            }>;
            output: z.ZodObject<{
                nextCursor: z.ZodNullable<z.ZodString>;
                trades: z.ZodArray<z.ZodObject<{
                    taker: z.ZodString;
                    chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
                    zid: z.ZodString;
                    sellToken: z.ZodString;
                    buyToken: z.ZodString;
                    gasUsed: z.ZodString;
                    blockNumber: z.ZodString;
                    timestamp: z.ZodNumber;
                    transactionHash: z.ZodString;
                    protocolVersion: z.ZodEnum<["0xV4", "Settler"]>;
                    appName: z.ZodString;
                    buyTokenSymbol: z.ZodString;
                    buyTokenAmount: z.ZodString;
                    integratorFeeToken: z.ZodString;
                    integratorFeeTokenSymbol: z.ZodString;
                    integratorFeeTokenAmount: z.ZodString;
                    integratorFeeUsdAmount: z.ZodString;
                    sellTokenSymbol: z.ZodString;
                    sellTokenAmount: z.ZodString;
                    slippageBps: z.ZodString;
                    volumeUsd: z.ZodString;
                    zeroExFeeToken: z.ZodString;
                    zeroExFeeTokenSymbol: z.ZodString;
                    zeroExFeeTokenAmoumt: z.ZodString;
                    zeroExFeeUsdAmount: z.ZodString;
                    service: z.ZodLiteral<"gasless">;
                }, "strip", z.ZodTypeAny, {
                    taker: string;
                    chainId: ChainId;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "gasless";
                }, {
                    taker: string;
                    chainId: number;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "gasless";
                }>, "many">;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                zid: string;
                nextCursor: string | null;
                trades: {
                    taker: string;
                    chainId: ChainId;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "gasless";
                }[];
            }, {
                zid: string;
                nextCursor: string | null;
                trades: {
                    taker: string;
                    chainId: number;
                    zid: string;
                    sellToken: string;
                    buyToken: string;
                    gasUsed: string;
                    blockNumber: string;
                    timestamp: number;
                    transactionHash: string;
                    protocolVersion: "Settler" | "0xV4";
                    appName: string;
                    buyTokenSymbol: string;
                    buyTokenAmount: string;
                    integratorFeeToken: string;
                    integratorFeeTokenSymbol: string;
                    integratorFeeTokenAmount: string;
                    integratorFeeUsdAmount: string;
                    sellTokenSymbol: string;
                    sellTokenAmount: string;
                    slippageBps: string;
                    volumeUsd: string;
                    zeroExFeeToken: string;
                    zeroExFeeTokenSymbol: string;
                    zeroExFeeTokenAmoumt: string;
                    zeroExFeeUsdAmount: string;
                    service: "gasless";
                }[];
            }>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "INPUT_INVALID" | "NO_ACCESS_TO_TRADES_ENDPOINT" | "UNCATEGORIZED")[];
        };
    };
    sources: {
        getSources: {
            openApiMeta: {
                method: "GET";
                path: "/sources";
                summary: string;
                description: string;
                headers: ({
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example?: undefined;
                    };
                } | {
                    description: string;
                    in: "header";
                    name: string;
                    required: true;
                    schema: {
                        type: "string";
                        example: string;
                    };
                })[];
                example: {
                    request: {
                        chainId: number;
                    };
                    response: {
                        sources: string[];
                        zid: string;
                    };
                };
            };
            enabledChainIds: number[];
            input: z.ZodObject<{
                chainId: z.ZodEffects<z.ZodNumber, ChainId, number>;
            }, "strip", z.ZodTypeAny, {
                chainId: ChainId;
            }, {
                chainId: number;
            }>;
            output: z.ZodObject<{
                sources: z.ZodArray<z.ZodString, "many">;
                zid: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                zid: string;
                sources: string[];
            }, {
                zid: string;
                sources: string[];
            }>;
            errorNames: ("INTERNAL_SERVER_ERROR" | "INPUT_INVALID" | "UNCATEGORIZED")[];
        };
    };
};

/**
 * This file is bundled up by `@0x/swap-ts-sdk` to type the client
 */

type RouterV2 = uvSpecToRouter<typeof uv2routerDefinition, {
    ctx: object;
}>;

export { ChainId, type Eip712Object, type GaslessV1ChainId, type GaslessV2ChainId, JobFailureReason, type RouterV2, type SwapV2ChainId };
