import { z } from 'zod';
/**
 * Comprehensive asset type enum combining all possible asset types
 * used across the API
 */
export declare const AssetTypeEnum: z.ZodEnum<["BOND", "EQUITY", "ETF", "EXTENDED", "FOREX", "FUTURE", "FUTURE_OPTION", "FUNDAMENTAL", "INDEX", "INDICATOR", "MUTUAL_FUND", "OPTION", "UNKNOWN", "CASH_EQUIVALENT", "FIXED_INCOME", "PRODUCT", "CURRENCY", "COLLECTIVE_INVESTMENT"]>;
export type AssetType = z.infer<typeof AssetTypeEnum>;
/**
 * Base instrument schema containing common fields across all instrument types
 * This provides a foundation that specific instrument types can extend
 */
export declare const BaseInstrumentSchema: z.ZodObject<{
    symbol: z.ZodString;
    description: z.ZodString;
    assetType: z.ZodEnum<["BOND", "EQUITY", "ETF", "EXTENDED", "FOREX", "FUTURE", "FUTURE_OPTION", "FUNDAMENTAL", "INDEX", "INDICATOR", "MUTUAL_FUND", "OPTION", "UNKNOWN", "CASH_EQUIVALENT", "FIXED_INCOME", "PRODUCT", "CURRENCY", "COLLECTIVE_INVESTMENT"]>;
    cusip: z.ZodOptional<z.ZodString>;
    exchange: z.ZodOptional<z.ZodString>;
    netChange: z.ZodOptional<z.ZodNumber>;
    instrumentId: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    symbol: string;
    description: string;
    assetType: "UNKNOWN" | "BOND" | "EQUITY" | "ETF" | "EXTENDED" | "FOREX" | "FUTURE" | "FUTURE_OPTION" | "FUNDAMENTAL" | "INDEX" | "INDICATOR" | "MUTUAL_FUND" | "OPTION" | "CASH_EQUIVALENT" | "FIXED_INCOME" | "PRODUCT" | "CURRENCY" | "COLLECTIVE_INVESTMENT";
    cusip?: string | undefined;
    exchange?: string | undefined;
    netChange?: number | undefined;
    instrumentId?: number | undefined;
}, {
    symbol: string;
    description: string;
    assetType: "UNKNOWN" | "BOND" | "EQUITY" | "ETF" | "EXTENDED" | "FOREX" | "FUTURE" | "FUTURE_OPTION" | "FUNDAMENTAL" | "INDEX" | "INDICATOR" | "MUTUAL_FUND" | "OPTION" | "CASH_EQUIVALENT" | "FIXED_INCOME" | "PRODUCT" | "CURRENCY" | "COLLECTIVE_INVESTMENT";
    cusip?: string | undefined;
    exchange?: string | undefined;
    netChange?: number | undefined;
    instrumentId?: number | undefined;
}>;
export type BaseInstrument = z.infer<typeof BaseInstrumentSchema>;
