import { z } from 'zod';
import { type Dimension, type Metric, type Table } from '../../../..';
export declare const TOOL_PROPOSE_CHANGE_DESCRIPTION = "\nCreates a change proposal for tables, metrics, and dimensions. Changes are applied immediately but can be reviewed and rejected afterward.\n\n**Supported Operations:**\n- Update table descriptions and labels\n- Update metric/dimension descriptions and labels\n- Create new metrics\n\n**Technical Requirements:**\n- When updating descriptions or labels, must preserve as much original content as possible\n- Descriptions should maintain their original format (preserve complete value and formatting)\n- Must provide entity table name, rationale, and change details\n- Changes are tracked with proposer information and timestamp\n- For updates: use \"replace\" operation with complete updated value (not partial)\n- For adding new properties: use \"add\" operation (creates property if it does not exist)\n- For new metrics: use \"create\" operation with full metric definition\n";
type ChangePatch<T> = Partial<Record<keyof T, z.ZodType>>;
declare const stringOpSchema: z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
    op: z.ZodLiteral<"replace">;
    value: z.ZodString;
}, "strip", z.ZodTypeAny, {
    value: string;
    op: "replace";
}, {
    value: string;
    op: "replace";
}>, z.ZodObject<{
    op: z.ZodLiteral<"add">;
    value: z.ZodString;
}, "strip", z.ZodTypeAny, {
    value: string;
    op: "add";
}, {
    value: string;
    op: "add";
}>]>;
export declare const toolProposeChangeArgsSchema: z.ZodObject<{
    entityTableName: z.ZodString;
    rationale: z.ZodString;
    change: z.ZodDiscriminatedUnion<"entityType", [z.ZodObject<{
        entityType: z.ZodLiteral<"table">;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"update">;
            patch: z.ZodObject<{
                description: z.ZodNullable<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
                    op: z.ZodLiteral<"replace">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "replace";
                }, {
                    value: string;
                    op: "replace";
                }>, z.ZodObject<{
                    op: z.ZodLiteral<"add">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "add";
                }, {
                    value: string;
                    op: "add";
                }>]>>;
                label: z.ZodNullable<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
                    op: z.ZodLiteral<"replace">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "replace";
                }, {
                    value: string;
                    op: "replace";
                }>, z.ZodObject<{
                    op: z.ZodLiteral<"add">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "add";
                }, {
                    value: string;
                    op: "add";
                }>]>>;
            }, "strip", z.ZodTypeAny, {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            }, {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        }, {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        }>]>;
    }, "strip", z.ZodTypeAny, {
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "table";
    }, {
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "table";
    }>, z.ZodObject<{
        entityType: z.ZodLiteral<"dimension">;
        fieldId: z.ZodString;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"update">;
            patch: z.ZodObject<{
                label: z.ZodNullable<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
                    op: z.ZodLiteral<"replace">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "replace";
                }, {
                    value: string;
                    op: "replace";
                }>, z.ZodObject<{
                    op: z.ZodLiteral<"add">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "add";
                }, {
                    value: string;
                    op: "add";
                }>]>>;
                description: z.ZodNullable<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
                    op: z.ZodLiteral<"replace">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "replace";
                }, {
                    value: string;
                    op: "replace";
                }>, z.ZodObject<{
                    op: z.ZodLiteral<"add">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "add";
                }, {
                    value: string;
                    op: "add";
                }>]>>;
            }, "strip", z.ZodTypeAny, {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            }, {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        }, {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        }>]>;
    }, "strip", z.ZodTypeAny, {
        fieldId: string;
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "dimension";
    }, {
        fieldId: string;
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "dimension";
    }>, z.ZodObject<{
        entityType: z.ZodLiteral<"metric">;
        fieldId: z.ZodString;
        value: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
            type: z.ZodLiteral<"create">;
            value: z.ZodDiscriminatedUnion<"entityType", [z.ZodObject<{
                entityType: z.ZodLiteral<"metric">;
                metric: z.ZodEffects<z.ZodObject<{
                    name: z.ZodString;
                    label: z.ZodString;
                    description: z.ZodString;
                    baseDimensionName: z.ZodString;
                    table: z.ZodString;
                    type: z.ZodEnum<[import("../../../..").MetricType.AVERAGE, import("../../../..").MetricType.COUNT, import("../../../..").MetricType.COUNT_DISTINCT, import("../../../..").MetricType.MAX, import("../../../..").MetricType.MIN, import("../../../..").MetricType.SUM, import("../../../..").MetricType.PERCENTILE, import("../../../..").MetricType.MEDIAN]>;
                }, "strip", z.ZodTypeAny, {
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                    baseDimensionName: string;
                }, {
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                    baseDimensionName: string;
                }>, {
                    baseDimensionName: string;
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                }, {
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                    baseDimensionName: string;
                }>;
            }, "strip", z.ZodTypeAny, {
                metric: {
                    baseDimensionName: string;
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                };
                entityType: "metric";
            }, {
                metric: {
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                    baseDimensionName: string;
                };
                entityType: "metric";
            }>]>;
        }, "strip", z.ZodTypeAny, {
            value: {
                metric: {
                    baseDimensionName: string;
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                };
                entityType: "metric";
            };
            type: "create";
        }, {
            value: {
                metric: {
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                    baseDimensionName: string;
                };
                entityType: "metric";
            };
            type: "create";
        }>, z.ZodObject<{
            type: z.ZodLiteral<"update">;
            patch: z.ZodObject<{
                label: z.ZodNullable<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
                    op: z.ZodLiteral<"replace">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "replace";
                }, {
                    value: string;
                    op: "replace";
                }>, z.ZodObject<{
                    op: z.ZodLiteral<"add">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "add";
                }, {
                    value: string;
                    op: "add";
                }>]>>;
                description: z.ZodNullable<z.ZodDiscriminatedUnion<"op", [z.ZodObject<{
                    op: z.ZodLiteral<"replace">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "replace";
                }, {
                    value: string;
                    op: "replace";
                }>, z.ZodObject<{
                    op: z.ZodLiteral<"add">;
                    value: z.ZodString;
                }, "strip", z.ZodTypeAny, {
                    value: string;
                    op: "add";
                }, {
                    value: string;
                    op: "add";
                }>]>>;
            }, "strip", z.ZodTypeAny, {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            }, {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        }, {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        }>]>;
    }, "strip", z.ZodTypeAny, {
        fieldId: string;
        value: {
            value: {
                metric: {
                    baseDimensionName: string;
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                };
                entityType: "metric";
            };
            type: "create";
        } | {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "metric";
    }, {
        fieldId: string;
        value: {
            value: {
                metric: {
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                    baseDimensionName: string;
                };
                entityType: "metric";
            };
            type: "create";
        } | {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "metric";
    }>]>;
}, z.UnknownKeysParam, z.ZodTypeAny, {
    entityTableName: string;
    rationale: string;
    change: {
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "table";
    } | {
        fieldId: string;
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "dimension";
    } | {
        fieldId: string;
        value: {
            value: {
                metric: {
                    baseDimensionName: string;
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                };
                entityType: "metric";
            };
            type: "create";
        } | {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "metric";
    };
}, {
    entityTableName: string;
    rationale: string;
    change: {
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "table";
    } | {
        fieldId: string;
        value: {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "dimension";
    } | {
        fieldId: string;
        value: {
            value: {
                metric: {
                    name: string;
                    label: string;
                    table: string;
                    type: import("../../../..").MetricType.PERCENTILE | import("../../../..").MetricType.AVERAGE | import("../../../..").MetricType.COUNT | import("../../../..").MetricType.COUNT_DISTINCT | import("../../../..").MetricType.SUM | import("../../../..").MetricType.MIN | import("../../../..").MetricType.MAX | import("../../../..").MetricType.MEDIAN;
                    description: string;
                    baseDimensionName: string;
                };
                entityType: "metric";
            };
            type: "create";
        } | {
            type: "update";
            patch: {
                label: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
                description: {
                    value: string;
                    op: "replace";
                } | {
                    value: string;
                    op: "add";
                } | null;
            };
        };
        entityType: "metric";
    };
}>;
export type ToolProposeChangeArgs = z.infer<typeof toolProposeChangeArgsSchema>;
export type ToolProposeChangeReplaceStringOp = z.infer<typeof stringOpSchema>;
export type UpdateDimensionPatch = ChangePatch<Dimension>;
export type UpdateMetricPatch = ChangePatch<Metric>;
export type UpdateTablePatch = ChangePatch<Table>;
export declare const toolProposeChangeOutputSchema: z.ZodObject<{
    result: z.ZodString;
    metadata: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
        status: z.ZodLiteral<"success">;
        changeUuid: z.ZodString;
        userFeedback: z.ZodOptional<z.ZodDefault<z.ZodEnum<["accepted", "rejected"]>>>;
    }, "strip", z.ZodTypeAny, {
        status: "success";
        changeUuid: string;
        userFeedback?: "accepted" | "rejected" | undefined;
    }, {
        status: "success";
        changeUuid: string;
        userFeedback?: "accepted" | "rejected" | undefined;
    }>, z.ZodObject<{
        status: z.ZodLiteral<"error">;
    }, "strip", z.ZodTypeAny, {
        status: "error";
    }, {
        status: "error";
    }>]>;
}, "strip", z.ZodTypeAny, {
    metadata: {
        status: "success";
        changeUuid: string;
        userFeedback?: "accepted" | "rejected" | undefined;
    } | {
        status: "error";
    };
    result: string;
}, {
    metadata: {
        status: "success";
        changeUuid: string;
        userFeedback?: "accepted" | "rejected" | undefined;
    } | {
        status: "error";
    };
    result: string;
}>;
export type ToolProposeChangeOutput = z.infer<typeof toolProposeChangeOutputSchema>;
export {};
//# sourceMappingURL=toolProposeChangeArgs.d.ts.map