import { z } from "zod";
/**
 * Portfolio optimization constraints.
 */
export declare const constraintsSchema: z.ZodObject<{
    min_weight: z.ZodDefault<z.ZodNumber>;
    max_weight: z.ZodDefault<z.ZodNumber>;
    sector_max: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>>;
}, "strip", z.ZodTypeAny, {
    min_weight: number;
    max_weight: number;
    sector_max?: Record<string, number> | null | undefined;
}, {
    min_weight?: number | undefined;
    max_weight?: number | undefined;
    sector_max?: Record<string, number> | null | undefined;
}>;
export type ConstraintsInput = z.infer<typeof constraintsSchema>;
/**
 * Input schema for the `optimize_portfolio` MCP tool.
 *
 * Finds optimal portfolio weights using mean-variance optimization (Markowitz).
 * PAID tier only.
 */
/** Base object shape — used by server.ts for MCP tool registration (needs .shape). */
export declare const optimizePortfolioBaseSchema: z.ZodObject<{
    tickers: z.ZodArray<z.ZodString, "many">;
    objective: z.ZodDefault<z.ZodEnum<["max_sharpe", "min_variance", "target_return"]>>;
    target_return: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    constraints: z.ZodOptional<z.ZodObject<{
        min_weight: z.ZodDefault<z.ZodNumber>;
        max_weight: z.ZodDefault<z.ZodNumber>;
        sector_max: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>>;
    }, "strip", z.ZodTypeAny, {
        min_weight: number;
        max_weight: number;
        sector_max?: Record<string, number> | null | undefined;
    }, {
        min_weight?: number | undefined;
        max_weight?: number | undefined;
        sector_max?: Record<string, number> | null | undefined;
    }>>;
    risk_free_rate: z.ZodDefault<z.ZodNumber>;
    lookback_days: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    lookback_days: number;
    tickers: string[];
    objective: "max_sharpe" | "min_variance" | "target_return";
    risk_free_rate: number;
    target_return?: number | null | undefined;
    constraints?: {
        min_weight: number;
        max_weight: number;
        sector_max?: Record<string, number> | null | undefined;
    } | undefined;
}, {
    tickers: string[];
    lookback_days?: number | undefined;
    target_return?: number | null | undefined;
    objective?: "max_sharpe" | "min_variance" | "target_return" | undefined;
    constraints?: {
        min_weight?: number | undefined;
        max_weight?: number | undefined;
        sector_max?: Record<string, number> | null | undefined;
    } | undefined;
    risk_free_rate?: number | undefined;
}>;
/** Full schema with cross-field validation — used for runtime input validation. */
export declare const optimizePortfolioSchema: z.ZodEffects<z.ZodObject<{
    tickers: z.ZodArray<z.ZodString, "many">;
    objective: z.ZodDefault<z.ZodEnum<["max_sharpe", "min_variance", "target_return"]>>;
    target_return: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    constraints: z.ZodOptional<z.ZodObject<{
        min_weight: z.ZodDefault<z.ZodNumber>;
        max_weight: z.ZodDefault<z.ZodNumber>;
        sector_max: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>>;
    }, "strip", z.ZodTypeAny, {
        min_weight: number;
        max_weight: number;
        sector_max?: Record<string, number> | null | undefined;
    }, {
        min_weight?: number | undefined;
        max_weight?: number | undefined;
        sector_max?: Record<string, number> | null | undefined;
    }>>;
    risk_free_rate: z.ZodDefault<z.ZodNumber>;
    lookback_days: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    lookback_days: number;
    tickers: string[];
    objective: "max_sharpe" | "min_variance" | "target_return";
    risk_free_rate: number;
    target_return?: number | null | undefined;
    constraints?: {
        min_weight: number;
        max_weight: number;
        sector_max?: Record<string, number> | null | undefined;
    } | undefined;
}, {
    tickers: string[];
    lookback_days?: number | undefined;
    target_return?: number | null | undefined;
    objective?: "max_sharpe" | "min_variance" | "target_return" | undefined;
    constraints?: {
        min_weight?: number | undefined;
        max_weight?: number | undefined;
        sector_max?: Record<string, number> | null | undefined;
    } | undefined;
    risk_free_rate?: number | undefined;
}>, {
    lookback_days: number;
    tickers: string[];
    objective: "max_sharpe" | "min_variance" | "target_return";
    risk_free_rate: number;
    target_return?: number | null | undefined;
    constraints?: {
        min_weight: number;
        max_weight: number;
        sector_max?: Record<string, number> | null | undefined;
    } | undefined;
}, {
    tickers: string[];
    lookback_days?: number | undefined;
    target_return?: number | null | undefined;
    objective?: "max_sharpe" | "min_variance" | "target_return" | undefined;
    constraints?: {
        min_weight?: number | undefined;
        max_weight?: number | undefined;
        sector_max?: Record<string, number> | null | undefined;
    } | undefined;
    risk_free_rate?: number | undefined;
}>;
export type OptimizePortfolioInput = z.infer<typeof optimizePortfolioSchema>;
//# sourceMappingURL=optimize-portfolio.d.ts.map