import type { AnyZodObject } from 'zod';
/** 單一資源物件 */
export interface Resource {
    resourceType: string;
    logicId: string;
    description: string;
    setting: any;
}
/** 讀取的 config 檔結構 */
export interface ConfigFile {
    version: string;
    logicIdPrefix: string;
    resources: Resource[];
}
/** 單一欄位差異 */
export interface Diff {
    key: string;
    desc: string;
    old: any;
    new: any;
}
/** 單一變更項目 */
export interface Change {
    resourceType: string;
    operation: 'create' | 'update' | 'delete';
    logicId: string;
    description: string;
    diffs: Diff[];
    payload: object | null;
}
/** 整個變更集 */
export interface ChangeSet {
    version: string;
    scopePrefix: string;
    changes: Change[];
}
/** 單一變更執行結果 */
export interface ChangeResult extends Omit<Change, 'payload'> {
    status: 'success' | 'failed';
    errorMessage?: string | null;
    errorCode?: string | null;
    payload?: Change['payload'];
}
/** 整個變更執行結果 */
export interface ChangeLog {
    version: string;
    scopePrefix: string;
    changes: ChangeResult[];
}
export type ZodSchemaActions = {
    createSchema: AnyZodObject;
    updateSchema: AnyZodObject;
};
