import { z } from 'zod';
export declare enum OnchainTokenFeeType {
    LinearFee = 1,
    RegressiveFee = 2,
    ProgressiveFee = 3,
    RoutingFee = 4,
    CrossCollateralRoutingFee = 5,
    OffchainQuotedLinearFee = 6
}
export declare enum TokenFeeType {
    LinearFee = "LinearFee",
    ProgressiveFee = "ProgressiveFee",
    RegressiveFee = "RegressiveFee",
    RoutingFee = "RoutingFee",
    CrossCollateralRoutingFee = "CrossCollateralRoutingFee",
    OffchainQuotedLinearFee = "OffchainQuotedLinearFee"
}
export declare const ImmutableTokenFeeType: readonly [TokenFeeType.LinearFee, TokenFeeType.RegressiveFee, TokenFeeType.ProgressiveFee];
export declare const onChainTypeToTokenFeeTypeMap: Record<OnchainTokenFeeType, TokenFeeType>;
export declare const DEFAULT_ROUTER_KEY = "0x6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf47";
export declare const BaseFeeConfigSchema: z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
}, "strip", z.ZodTypeAny, {
    owner: string;
    token: string;
}, {
    owner: string;
    token: string;
}>;
export type BaseTokenFeeConfig = z.infer<typeof BaseFeeConfigSchema>;
export declare const BaseFeeConfigInputSchema: z.ZodObject<{
    owner: z.ZodString;
}, "strip", z.ZodTypeAny, {
    owner: string;
}, {
    owner: string;
}>;
export declare const FeeParametersSchema: z.ZodObject<{
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
}, "strip", z.ZodTypeAny, {
    maxFee: bigint;
    halfAmount: bigint;
}, {
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>;
export type FeeParameters = z.infer<typeof FeeParametersSchema>;
export declare const QuoteSignersSchema: z.ZodObject<{
    quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    quoteSigners?: string[] | undefined;
}, {
    quoteSigners?: string[] | undefined;
}>;
export type QuoteSignersConfig = z.infer<typeof QuoteSignersSchema>;
export declare const LinearFeeConfigSchema: z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    bps: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>;
} & {
    type: z.ZodLiteral<TokenFeeType.LinearFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.LinearFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
    bps: number;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
    bps: string | number;
}>;
export type LinearFeeConfig = z.infer<typeof LinearFeeConfigSchema>;
export declare const LinearFeeInputConfigSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    maxFee: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    halfAmount: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    type: z.ZodLiteral<TokenFeeType.LinearFee>;
    bps: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
}>, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
}>, {
    bps: number;
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
}>;
export type LinearFeeInputConfig = z.infer<typeof LinearFeeInputConfigSchema>;
export declare const OffchainQuotedLinearFeeConfigSchema: z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    bps: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>;
} & {
    quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
} & {
    type: z.ZodLiteral<TokenFeeType.OffchainQuotedLinearFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
    bps: number;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
    bps: string | number;
    quoteSigners?: string[] | undefined;
}>;
export type OffchainQuotedLinearFeeConfig = z.infer<typeof OffchainQuotedLinearFeeConfigSchema>;
export declare const OffchainQuotedLinearFeeInputConfigSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
} & {
    maxFee: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    halfAmount: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    type: z.ZodLiteral<TokenFeeType.OffchainQuotedLinearFee>;
    bps: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
    quoteSigners?: string[] | undefined;
}>, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
    quoteSigners?: string[] | undefined;
}>, {
    bps: number;
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
    quoteSigners?: string[] | undefined;
}>;
export type OffchainQuotedLinearFeeInputConfig = z.infer<typeof OffchainQuotedLinearFeeInputConfigSchema>;
export declare const ProgressiveFeeConfigSchema: z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    type: z.ZodLiteral<TokenFeeType.ProgressiveFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>;
export type ProgressiveFeeConfig = z.infer<typeof ProgressiveFeeConfigSchema>;
export declare const ProgressiveFeeInputConfigSchema: z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.ProgressiveFee>;
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>;
export type ProgressiveFeeInputConfig = z.infer<typeof ProgressiveFeeInputConfigSchema>;
export declare const RegressiveFeeConfigSchema: z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    type: z.ZodLiteral<TokenFeeType.RegressiveFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>;
export type RegressiveFeeConfig = z.infer<typeof RegressiveFeeConfigSchema>;
export declare const RegressiveFeeInputConfigSchema: z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.RegressiveFee>;
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>;
export type RegressiveFeeInputConfig = z.infer<typeof RegressiveFeeInputConfigSchema>;
export declare const RoutingFeeConfigSchema: z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.RoutingFee>;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    token: string;
    feeContracts: Record<string, any>;
}, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    token: string;
    feeContracts: Record<string, any>;
}>;
export type RoutingFeeConfig = z.infer<typeof RoutingFeeConfigSchema>;
export declare const CrossCollateralRoutingFeeConfigSchema: z.ZodObject<{
    type: z.ZodLiteral<TokenFeeType.CrossCollateralRoutingFee>;
    owner: z.ZodString;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>, Record<string, any>, Record<string, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}>;
export type CrossCollateralRoutingFeeConfig = z.infer<typeof CrossCollateralRoutingFeeConfigSchema>;
export declare const RoutingFeeInputConfigSchema: z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.RoutingFee>;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}>, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}>;
export type RoutingFeeInputConfig = z.infer<typeof RoutingFeeInputConfigSchema>;
export declare const CrossCollateralRoutingFeeInputConfigSchema: z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.CrossCollateralRoutingFee>;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>, Record<string, any>, Record<string, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}>, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}>;
export type CrossCollateralRoutingFeeInputConfig = z.infer<typeof CrossCollateralRoutingFeeInputConfigSchema>;
export declare const TokenFeeConfigSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    bps: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>;
} & {
    type: z.ZodLiteral<TokenFeeType.LinearFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.LinearFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
    bps: number;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
    bps: string | number;
}>, z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    bps: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>;
} & {
    quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
} & {
    type: z.ZodLiteral<TokenFeeType.OffchainQuotedLinearFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
    bps: number;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
    bps: string | number;
    quoteSigners?: string[] | undefined;
}>, z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    type: z.ZodLiteral<TokenFeeType.ProgressiveFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
} & {
    type: z.ZodLiteral<TokenFeeType.RegressiveFee>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    token: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    token: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, z.ZodObject<{
    token: z.ZodString;
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.RoutingFee>;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    token: string;
    feeContracts: Record<string, any>;
}, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    token: string;
    feeContracts: Record<string, any>;
}>, z.ZodObject<{
    type: z.ZodLiteral<TokenFeeType.CrossCollateralRoutingFee>;
    owner: z.ZodString;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>, Record<string, any>, Record<string, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}>]>;
export type TokenFeeConfig = z.infer<typeof TokenFeeConfigSchema>;
export declare const TokenFeeConfigInputSchema: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    maxFee: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    halfAmount: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    type: z.ZodLiteral<TokenFeeType.LinearFee>;
    bps: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
}>, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
}>, {
    bps: number;
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
}, {
    type: TokenFeeType.LinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
}>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    quoteSigners: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
} & {
    maxFee: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    halfAmount: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>>;
    type: z.ZodLiteral<TokenFeeType.OffchainQuotedLinearFee>;
    bps: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodNumber, z.ZodString]>, number, string | number>, number, string | number>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
    quoteSigners?: string[] | undefined;
}>, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    bps?: number | undefined;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
    quoteSigners?: string[] | undefined;
}>, {
    bps: number;
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: bigint | undefined;
    halfAmount?: bigint | undefined;
    quoteSigners?: string[] | undefined;
}, {
    type: TokenFeeType.OffchainQuotedLinearFee;
    owner: string;
    maxFee?: string | number | bigint | undefined;
    halfAmount?: string | number | bigint | undefined;
    bps?: string | number | undefined;
    quoteSigners?: string[] | undefined;
}>, z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.ProgressiveFee>;
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.ProgressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.RegressiveFee>;
    maxFee: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
    halfAmount: z.ZodEffects<z.ZodUnion<[z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>, z.ZodString]>, bigint, string | number | bigint>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: bigint;
    halfAmount: bigint;
}, {
    type: TokenFeeType.RegressiveFee;
    owner: string;
    maxFee: string | number | bigint;
    halfAmount: string | number | bigint;
}>, z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.RoutingFee>;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}>, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}, {
    type: TokenFeeType.RoutingFee;
    owner: string;
    feeContracts: Record<string, any>;
}>, z.ZodEffects<z.ZodObject<{
    owner: z.ZodString;
} & {
    type: z.ZodLiteral<TokenFeeType.CrossCollateralRoutingFee>;
    feeContracts: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodLazy<z.ZodType<any, z.ZodTypeDef, any>>>, Record<string, any>, Record<string, any>>>;
}, "strip", z.ZodTypeAny, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}>, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}, {
    type: TokenFeeType.CrossCollateralRoutingFee;
    owner: string;
    feeContracts: Record<string, Record<string, any>>;
}>]>;
export type TokenFeeConfigInput = z.infer<typeof TokenFeeConfigInputSchema>;
export type ResolvedLinearFeeConfigInput = LinearFeeInputConfig & {
    token: string;
};
export type ResolvedProgressiveFeeConfigInput = ProgressiveFeeInputConfig & {
    token: string;
};
export type ResolvedRegressiveFeeConfigInput = RegressiveFeeInputConfig & {
    token: string;
};
export type ResolvedRoutingFeeConfigInput = RoutingFeeInputConfig & {
    token: string;
    feeContracts: Record<string, ResolvedTokenFeeConfigInput>;
};
export type ResolvedCrossCollateralRoutingFeeConfigInput = CrossCollateralRoutingFeeInputConfig & {
    feeContracts: Record<string, Record<string, ResolvedTokenFeeConfigInput>>;
};
export type ResolvedOffchainQuotedLinearFeeConfigInput = OffchainQuotedLinearFeeInputConfig & {
    token: string;
};
export type ResolvedTokenFeeConfigInput = ResolvedLinearFeeConfigInput | ResolvedOffchainQuotedLinearFeeConfigInput | ResolvedProgressiveFeeConfigInput | ResolvedRegressiveFeeConfigInput | ResolvedRoutingFeeConfigInput | ResolvedCrossCollateralRoutingFeeConfigInput;
//# sourceMappingURL=types.d.ts.map