import Decimal from "decimal.js";
import { z } from "zod";
/**
 * Zod 4: Primitive integer schemas with rich metadata
 * Using z.pipe() for explicit conversions (14x faster than z.coerce)
 */
export declare const I64Schema: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const U8Schema: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
export declare const U16Schema: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
export declare const I16Schema: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
export declare const U32Schema: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
export declare const U64Schema: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const U128Schema: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
/**
 * Zod 4: High-precision decimal schema
 * Accepts string or number, returns Decimal.js instance
 */
export declare const DecimalSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<Decimal, string | number>>;
/**
 * Zod 4: Solana address validation with rich metadata
 */
export declare const Base58Address: z.ZodPipe<z.ZodString, z.ZodString>;
/**
 * Zod 4: Domain schemas with descriptive metadata
 * Note: Using type aliases instead of .brand() to maintain backwards compatibility
 * For full type safety, consider using .brand() after migrating existing code
 */
export declare const AssetId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
export declare const MarketId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
export declare const OrderId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const TradeId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const ClientOrderId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const TriggerOrderId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const TwapId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const Amount: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
export declare const UnixTimestampMicros: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
/**
 * Zod 4: Type-safe map builder for JSON-serialized Maps
 * Converts object representation to native Map with typed keys
 *
 * @example
 * const MarketMap = createJsonMap(MarketId, MarketInfo);
 * // Type: Map<number & Brand<"MarketId">, MarketInfo>
 */
export declare const createJsonMap: <K extends z.ZodTypeAny, V extends z.ZodTypeAny>(keySchema: K, valueSchema: V, options?: {
    description?: string;
    example?: Record<string, unknown>;
}) => z.ZodPipe<z.ZodRecord<z.ZodString, V>, z.ZodTransform<Map<z.core.output<K>, z.core.output<V>>, Record<string, z.core.output<V>>>>;
/**
 * Zod 4: Type-safe set builder for JSON-serialized Sets (BTreeSet)
 * Converts array representation to native Set with typed elements
 *
 * @example
 * const AssetIdSet = createJsonSet(AssetId);
 * // Type: Set<number>
 *
 * const AddressSet = createJsonSet(Base58Address);
 * // Type: Set<string>
 */
export declare const createJsonSet: <V extends z.ZodTypeAny>(valueSchema: V, options?: {
    description?: string;
    example?: unknown[];
}) => z.ZodPipe<z.ZodArray<V>, z.ZodTransform<Set<z.core.output<V>>, z.core.output<V>[]>>;
/**
 * Zod 4: Schema registry for centralized validation and JSON Schema generation
 * Enables runtime introspection and API documentation generation
 */
export declare const PrimitiveSchemas: {
    readonly I16: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
    readonly I64: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly U8: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
    readonly U16: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
    readonly U32: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
    readonly U64: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly U128: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly Decimal: z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<Decimal, string | number>>;
    readonly Base58Address: z.ZodPipe<z.ZodString, z.ZodString>;
};
export declare const DomainSchemas: {
    readonly AssetId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
    readonly MarketId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>, z.ZodTransform<number, string | number>>, z.ZodNumber>;
    readonly OrderId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly TradeId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly ClientOrderId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly TriggerOrderId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly TwapId: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly Amount: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
    readonly UnixTimestampMicros: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBigInt]>, z.ZodTransform<bigint, string | number | bigint>>, z.ZodBigInt>;
};
//# sourceMappingURL=index.d.ts.map