import { Schema } from 'effect';
import type { ColumnDef } from '@tanstack/vue-table';
import type { Environment } from '../../../../../vendor/cel-js/lib/index.js';
import type { ColumnDefDeps, MigrateFn, MigrateSource } from '../../../utils/resolve.js';
export declare const type: "com.shwfed.table.column.combobox-multi";
export declare const compatibilityDate: "2026-05-28";
export declare const metadata: {
    readonly name: "多选";
    readonly icon: "fluent:chevron-down-20-regular";
    readonly selection: true;
};
export declare function itemSchema(configure: (env: Environment) => void): Schema.Struct<{
    id: Schema.refine<string, typeof Schema.String>;
    label: Schema.refine<readonly [{
        readonly locale: "zh";
        readonly message: string;
    }, ...{
        readonly locale: "en" | "ja" | "ko";
        readonly message: string;
    }[]], Schema.TupleType<readonly [Schema.Struct<{
        locale: Schema.Literal<["zh"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>], [Schema.Struct<{
        locale: Schema.Literal<["ja", "en", "ko"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>]>>;
    value: Schema.Union<[Schema.Struct<{
        kind: Schema.Literal<["text"]>;
        value: typeof Schema.String;
    }>, Schema.Struct<{
        kind: Schema.Literal<["number"]>;
        value: typeof Schema.Number;
    }>]>;
    tooltip: Schema.optional<Schema.refine<readonly [{
        readonly locale: "zh";
        readonly message: string;
    }, ...{
        readonly locale: "en" | "ja" | "ko";
        readonly message: string;
    }[]], Schema.TupleType<readonly [Schema.Struct<{
        locale: Schema.Literal<["zh"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>], [Schema.Struct<{
        locale: Schema.Literal<["ja", "en", "ko"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>]>>>;
    keywords: Schema.optional<Schema.Array$<typeof Schema.String>>;
}>;
export declare function remoteOptionsSchema(configure: (env: Environment) => void): Schema.Struct<{
    kind: Schema.Literal<["remote"]>;
    request: Schema.Schema<string, string, never>;
    options: Schema.Schema<string, string, never>;
    optionValue: Schema.optionalWith<Schema.Schema<string, string, never>, {
        default: () => string;
    }>;
    optionLabel: Schema.optionalWith<Schema.refine<readonly [{
        readonly locale: "zh";
        readonly message: string;
    }, ...{
        readonly locale: "en" | "ja" | "ko";
        readonly message: string;
    }[]], Schema.TupleType<readonly [Schema.Struct<{
        locale: Schema.Literal<["zh"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>], [Schema.Struct<{
        locale: Schema.Literal<["ja", "en", "ko"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>]>>, {
        default: () => readonly [{
            readonly locale: "zh";
            readonly message: "";
        }];
    }>;
    optionKeywords: Schema.optional<Schema.Schema<string, string, never>>;
}>;
export declare function optionsSchema(configure: (env: Environment) => void): Schema.Union<[Schema.Struct<{
    kind: Schema.Literal<["static"]>;
    items: Schema.optionalWith<Schema.Array$<Schema.Struct<{
        id: Schema.refine<string, typeof Schema.String>;
        label: Schema.refine<readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]], Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>>;
        value: Schema.Union<[Schema.Struct<{
            kind: Schema.Literal<["text"]>;
            value: typeof Schema.String;
        }>, Schema.Struct<{
            kind: Schema.Literal<["number"]>;
            value: typeof Schema.Number;
        }>]>;
        tooltip: Schema.optional<Schema.refine<readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]], Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>>>;
        keywords: Schema.optional<Schema.Array$<typeof Schema.String>>;
    }>>, {
        default: () => readonly [];
    }>;
}>, Schema.Struct<{
    kind: Schema.Literal<["remote"]>;
    request: Schema.Schema<string, string, never>;
    options: Schema.Schema<string, string, never>;
    optionValue: Schema.optionalWith<Schema.Schema<string, string, never>, {
        default: () => string;
    }>;
    optionLabel: Schema.optionalWith<Schema.refine<readonly [{
        readonly locale: "zh";
        readonly message: string;
    }, ...{
        readonly locale: "en" | "ja" | "ko";
        readonly message: string;
    }[]], Schema.TupleType<readonly [Schema.Struct<{
        locale: Schema.Literal<["zh"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>], [Schema.Struct<{
        locale: Schema.Literal<["ja", "en", "ko"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>]>>, {
        default: () => readonly [{
            readonly locale: "zh";
            readonly message: "";
        }];
    }>;
    optionKeywords: Schema.optional<Schema.Schema<string, string, never>>;
}>]>;
export declare function writeSchema(configure: (env: Environment) => void): Schema.Union<[Schema.Struct<{
    kind: Schema.Literal<["binding"]>;
    binding: Schema.SchemaClass<string, string, never>;
}>, Schema.Struct<{
    kind: Schema.Literal<["remote"]>;
    accessor: Schema.Schema<string, string, never>;
    onChange: Schema.optional<Schema.Schema<string, string, never>>;
    successMessage: Schema.optional<Schema.Schema<string, string, never>>;
    triggers: Schema.optional<Schema.Array$<Schema.Struct<{
        target: Schema.refine<string, typeof Schema.String>;
        operation: Schema.SchemaClass<string, string, never>;
    }>>>;
}>]>;
export declare function schema(configure: (env: Environment) => void): Schema.Struct<{
    title: Schema.TupleType<readonly [Schema.Struct<{
        locale: Schema.Literal<["zh"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>], [Schema.Struct<{
        locale: Schema.Literal<["ja", "en", "ko"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>]>;
    placeholder: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
        locale: Schema.Literal<["zh"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>], [Schema.Struct<{
        locale: Schema.Literal<["ja", "en", "ko"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>]>>;
    hidden: Schema.optional<Schema.Schema<string, string, never>>;
    disabled: Schema.optional<Schema.Schema<string, string, never>>;
    readonly: Schema.optional<Schema.Schema<string, string, never>>;
    enableSorting: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
    sortKey: Schema.optional<Schema.refine<string, typeof Schema.String>>;
    size: Schema.optional<Schema.refine<number, Schema.filter<typeof Schema.Number>>>;
    grow: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
    tooltip: Schema.optional<Schema.TupleType<readonly [Schema.Struct<{
        locale: Schema.Literal<["zh"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>], [Schema.Struct<{
        locale: Schema.Literal<["ja", "en", "ko"]>;
        message: Schema.SchemaClass<string, string, never>;
    }>]>>;
    options: Schema.optionalWith<Schema.Union<[Schema.Struct<{
        kind: Schema.Literal<["static"]>;
        items: Schema.optionalWith<Schema.Array$<Schema.Struct<{
            id: Schema.refine<string, typeof Schema.String>;
            label: Schema.refine<readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]], Schema.TupleType<readonly [Schema.Struct<{
                locale: Schema.Literal<["zh"]>;
                message: Schema.SchemaClass<string, string, never>;
            }>], [Schema.Struct<{
                locale: Schema.Literal<["ja", "en", "ko"]>;
                message: Schema.SchemaClass<string, string, never>;
            }>]>>;
            value: Schema.Union<[Schema.Struct<{
                kind: Schema.Literal<["text"]>;
                value: typeof Schema.String;
            }>, Schema.Struct<{
                kind: Schema.Literal<["number"]>;
                value: typeof Schema.Number;
            }>]>;
            tooltip: Schema.optional<Schema.refine<readonly [{
                readonly locale: "zh";
                readonly message: string;
            }, ...{
                readonly locale: "en" | "ja" | "ko";
                readonly message: string;
            }[]], Schema.TupleType<readonly [Schema.Struct<{
                locale: Schema.Literal<["zh"]>;
                message: Schema.SchemaClass<string, string, never>;
            }>], [Schema.Struct<{
                locale: Schema.Literal<["ja", "en", "ko"]>;
                message: Schema.SchemaClass<string, string, never>;
            }>]>>>;
            keywords: Schema.optional<Schema.Array$<typeof Schema.String>>;
        }>>, {
            default: () => readonly [];
        }>;
    }>, Schema.Struct<{
        kind: Schema.Literal<["remote"]>;
        request: Schema.Schema<string, string, never>;
        options: Schema.Schema<string, string, never>;
        optionValue: Schema.optionalWith<Schema.Schema<string, string, never>, {
            default: () => string;
        }>;
        optionLabel: Schema.optionalWith<Schema.refine<readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]], Schema.TupleType<readonly [Schema.Struct<{
            locale: Schema.Literal<["zh"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>], [Schema.Struct<{
            locale: Schema.Literal<["ja", "en", "ko"]>;
            message: Schema.SchemaClass<string, string, never>;
        }>]>>, {
            default: () => readonly [{
                readonly locale: "zh";
                readonly message: "";
            }];
        }>;
        optionKeywords: Schema.optional<Schema.Schema<string, string, never>>;
    }>]>, {
        default: () => {
            kind: "static";
            items: readonly [];
        };
    }>;
    write: Schema.optionalWith<Schema.Union<[Schema.Struct<{
        kind: Schema.Literal<["binding"]>;
        binding: Schema.SchemaClass<string, string, never>;
    }>, Schema.Struct<{
        kind: Schema.Literal<["remote"]>;
        accessor: Schema.Schema<string, string, never>;
        onChange: Schema.optional<Schema.Schema<string, string, never>>;
        successMessage: Schema.optional<Schema.Schema<string, string, never>>;
        triggers: Schema.optional<Schema.Array$<Schema.Struct<{
            target: Schema.refine<string, typeof Schema.String>;
            operation: Schema.SchemaClass<string, string, never>;
        }>>>;
    }>]>, {
        default: () => {
            kind: "binding";
            binding: string;
        };
    }>;
    id: Schema.refine<string, typeof Schema.String>;
    groupId: Schema.optional<typeof Schema.UUID>;
    type: Schema.Literal<["com.shwfed.table.column.combobox-multi"]>;
    compatibilityDate: Schema.Literal<["2026-05-28"]>;
}>;
export type Value = Schema.Schema.Type<ReturnType<typeof schema>>;
export declare function defaults(): Partial<Value>;
export declare const migrateFrom: ReadonlyArray<MigrateSource>;
export declare const migrate: MigrateFn;
export declare function toColumnDef(value: Value, { getLocaleText, $cel, inheritedContext }: ColumnDefDeps): Partial<ColumnDef<unknown, unknown>>;
