import { z } from 'zod'; export declare enum OnchainTokenFeeType { LinearFee = 1, RegressiveFee = 2, ProgressiveFee = 3, RoutingFee = 4, CrossCollateralRoutingFee = 5, OffchainQuotedLinearFee = 6 } export declare const TokenFeeType: { readonly LinearFee: 'LinearFee'; readonly ProgressiveFee: 'ProgressiveFee'; readonly RegressiveFee: 'RegressiveFee'; readonly RoutingFee: 'RoutingFee'; readonly CrossCollateralRoutingFee: 'CrossCollateralRoutingFee'; readonly OffchainQuotedLinearFee: 'OffchainQuotedLinearFee'; }; export type TokenFeeType = (typeof TokenFeeType)[keyof typeof TokenFeeType]; export declare const ImmutableTokenFeeType: readonly ["LinearFee", "RegressiveFee", "ProgressiveFee"]; export declare const onChainTypeToTokenFeeTypeMap: Record; export declare const DEFAULT_ROUTER_KEY = "0x6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf47"; export declare const BaseFeeConfigSchema: z.ZodObject<{ token: z.ZodString; owner: z.ZodString; }, z.core.$strip>; export type BaseTokenFeeConfig = z.infer; export declare const BaseFeeConfigInputSchema: z.ZodObject<{ owner: z.ZodOptional; beneficiary: z.ZodOptional; }, z.core.$strip>; export declare const FeeParametersSchema: z.ZodObject<{ maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; }, z.core.$strip>; export type FeeParameters = z.infer; export declare const QuoteSignersSchema: z.ZodObject<{ quoteSigners: z.ZodOptional>; }, z.core.$strip>; export type QuoteSignersConfig = z.infer; export declare const LinearFeeConfigSchema: z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; bps: z.ZodPipe, z.ZodTransform>; type: z.ZodLiteral<"LinearFee">; }, z.core.$strip>; export type LinearFeeConfig = z.infer; export declare const LinearFeeInputConfigSchema: z.ZodPipe; beneficiary: z.ZodOptional; maxFee: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; halfAmount: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; type: z.ZodLiteral<"LinearFee">; bps: z.ZodOptional, z.ZodTransform>>; }, z.core.$strip>, z.ZodTransform<{ owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; type: "LinearFee"; bps: number; }, { owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; type: "LinearFee"; bps?: number | undefined; }>>; export type LinearFeeInputConfig = z.infer; export declare const OffchainQuotedLinearFeeConfigSchema: z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; bps: z.ZodPipe, z.ZodTransform>; quoteSigners: z.ZodOptional>; type: z.ZodLiteral<"OffchainQuotedLinearFee">; }, z.core.$strip>; export type OffchainQuotedLinearFeeConfig = z.infer; export declare const OffchainQuotedLinearFeeInputConfigSchema: z.ZodPipe; beneficiary: z.ZodOptional; maxFee: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; halfAmount: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; quoteSigners: z.ZodOptional>; type: z.ZodLiteral<"OffchainQuotedLinearFee">; bps: z.ZodOptional, z.ZodTransform>>; }, z.core.$strip>, z.ZodTransform<{ owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; quoteSigners?: string[] | undefined; type: "OffchainQuotedLinearFee"; bps: number; }, { owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; quoteSigners?: string[] | undefined; type: "OffchainQuotedLinearFee"; bps?: number | undefined; }>>; export type OffchainQuotedLinearFeeInputConfig = z.infer; export declare const ProgressiveFeeConfigSchema: z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; type: z.ZodLiteral<"ProgressiveFee">; }, z.core.$strip>; export type ProgressiveFeeConfig = z.infer; export declare const ProgressiveFeeInputConfigSchema: z.ZodObject<{ owner: z.ZodOptional; beneficiary: z.ZodOptional; type: z.ZodLiteral<"ProgressiveFee">; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; }, z.core.$strip>; export type ProgressiveFeeInputConfig = z.infer; export declare const RegressiveFeeConfigSchema: z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; type: z.ZodLiteral<"RegressiveFee">; }, z.core.$strip>; export type RegressiveFeeConfig = z.infer; export declare const RegressiveFeeInputConfigSchema: z.ZodObject<{ owner: z.ZodOptional; beneficiary: z.ZodOptional; type: z.ZodLiteral<"RegressiveFee">; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; }, z.core.$strip>; export type RegressiveFeeInputConfig = z.infer; export declare const LeafTokenFeeConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; bps: z.ZodPipe, z.ZodTransform>; type: z.ZodLiteral<"LinearFee">; }, z.core.$strip>, z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; bps: z.ZodPipe, z.ZodTransform>; quoteSigners: z.ZodOptional>; type: z.ZodLiteral<"OffchainQuotedLinearFee">; }, z.core.$strip>, z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; type: z.ZodLiteral<"ProgressiveFee">; }, z.core.$strip>, z.ZodObject<{ token: z.ZodString; owner: z.ZodString; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; type: z.ZodLiteral<"RegressiveFee">; }, z.core.$strip>], "type">; export type LeafTokenFeeConfig = z.infer; export declare const LeafTokenFeeInputConfigSchema: z.ZodDiscriminatedUnion<[z.ZodPipe; beneficiary: z.ZodOptional; maxFee: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; halfAmount: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; type: z.ZodLiteral<"LinearFee">; bps: z.ZodOptional, z.ZodTransform>>; }, z.core.$strip>, z.ZodTransform<{ owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; type: "LinearFee"; bps: number; }, { owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; type: "LinearFee"; bps?: number | undefined; }>>, z.ZodPipe; beneficiary: z.ZodOptional; maxFee: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; halfAmount: z.ZodOptional, z.ZodString]>, z.ZodTransform>>; quoteSigners: z.ZodOptional>; type: z.ZodLiteral<"OffchainQuotedLinearFee">; bps: z.ZodOptional, z.ZodTransform>>; }, z.core.$strip>, z.ZodTransform<{ owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; quoteSigners?: string[] | undefined; type: "OffchainQuotedLinearFee"; bps: number; }, { owner?: string | undefined; beneficiary?: string | undefined; maxFee?: bigint | undefined; halfAmount?: bigint | undefined; quoteSigners?: string[] | undefined; type: "OffchainQuotedLinearFee"; bps?: number | undefined; }>>, z.ZodObject<{ owner: z.ZodOptional; beneficiary: z.ZodOptional; type: z.ZodLiteral<"ProgressiveFee">; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; }, z.core.$strip>, z.ZodObject<{ owner: z.ZodOptional; beneficiary: z.ZodOptional; type: z.ZodLiteral<"RegressiveFee">; maxFee: z.ZodPipe, z.ZodString]>, z.ZodTransform>; halfAmount: z.ZodPipe, z.ZodString]>, z.ZodTransform>; }, z.core.$strip>], "type">; export type LeafTokenFeeInputConfig = z.infer; export interface RoutingFeeConfig extends BaseTokenFeeConfig { type: typeof TokenFeeType.RoutingFee; feeContracts: Record; } export interface CrossCollateralRoutingFeeConfig { type: typeof TokenFeeType.CrossCollateralRoutingFee; owner: string; feeContracts: Record>; } export interface StandardTokenFeeConfig extends BaseTokenFeeConfig, FeeParameters { type: (typeof ImmutableTokenFeeType)[number]; bps?: number; } export type TokenFeeConfig = StandardTokenFeeConfig | OffchainQuotedLinearFeeConfig | RoutingFeeConfig | CrossCollateralRoutingFeeConfig; type BaseTokenFeeInputConfig = z.infer; export interface RoutingFeeInputConfig extends BaseTokenFeeInputConfig { type: typeof TokenFeeType.RoutingFee; feeContracts: Record; } export interface CrossCollateralRoutingFeeInputConfig extends BaseTokenFeeInputConfig { type: typeof TokenFeeType.CrossCollateralRoutingFee; feeContracts: Record>; } export interface StandardTokenFeeInputConfig extends BaseTokenFeeInputConfig { type: (typeof ImmutableTokenFeeType)[number]; bps?: number; maxFee?: bigint; halfAmount?: bigint; } export type TokenFeeConfigInput = StandardTokenFeeInputConfig | OffchainQuotedLinearFeeInputConfig | RoutingFeeInputConfig | CrossCollateralRoutingFeeInputConfig; export declare const RoutingFeeConfigSchema: z.ZodType; export declare const CrossCollateralRoutingFeeConfigSchema: z.ZodType; export declare const RoutingFeeInputConfigSchema: z.ZodType; export declare const CrossCollateralRoutingFeeInputConfigSchema: z.ZodType; export declare const TokenFeeConfigSchema: z.ZodType; export declare const TokenFeeConfigInputSchema: z.ZodType; export type ResolvedLinearFeeConfigInput = LinearFeeInputConfig & { owner: string; token: string; }; export type ResolvedProgressiveFeeConfigInput = ProgressiveFeeInputConfig & { owner: string; token: string; }; export type ResolvedRegressiveFeeConfigInput = RegressiveFeeInputConfig & { owner: string; token: string; }; export type ResolvedRoutingFeeConfigInput = RoutingFeeInputConfig & { owner: string; token: string; feeContracts: Record; }; export type ResolvedCrossCollateralRoutingFeeConfigInput = CrossCollateralRoutingFeeInputConfig & { owner: string; feeContracts: Record>; }; export type ResolvedOffchainQuotedLinearFeeConfigInput = OffchainQuotedLinearFeeInputConfig & { owner: string; token: string; }; export type ResolvedStandardTokenFeeConfigInput = StandardTokenFeeInputConfig & { owner: string; token: string; }; export type ResolvedTokenFeeConfigInput = ResolvedStandardTokenFeeConfigInput | ResolvedOffchainQuotedLinearFeeConfigInput | ResolvedRoutingFeeConfigInput | ResolvedCrossCollateralRoutingFeeConfigInput; export {}; //# sourceMappingURL=types.d.ts.map