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.tree-combobox-multi";
export declare const compatibilityDate: "2026-05-28";
export declare const metadata: {
    readonly name: "下拉树（多选）";
    readonly icon: "fluent:tree-evergreen-20-regular";
    readonly selection: true;
};
export declare function schema(configure: (env: Environment) => void): Schema.Struct<{
    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>>;
    derived: Schema.optional<Schema.Struct<{
        mode: Schema.Literal<["formula", "prefill"]>;
        expression: Schema.Schema<string, string, never>;
    }>>;
    dataSource: Schema.Struct<{
        request: Schema.optional<Schema.Schema<string, string, never>>;
        data: Schema.Schema<string, string, never>;
    }>;
    nodeKey: Schema.Schema<string, string, never>;
    nodeChildren: Schema.Schema<string, string, never>;
    nodeLabel: 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>;
    }>]>>;
    nodeTooltip: 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.Schema<string, string, never>>;
    nodeSelectable: Schema.optional<Schema.Schema<string, string, never>>;
    cascade: Schema.optionalWith<Schema.Literal<["independent", "cascade-down", "cascade-both"]>, {
        default: () => "independent";
    }>;
    expandAll: Schema.optionalWith<typeof Schema.Boolean, {
        default: () => false;
    }>;
    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>;
    }>]>;
    binding: Schema.refine<string, typeof Schema.String>;
    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>;
    }>]>>;
    id: Schema.refine<string, typeof Schema.String>;
    groupId: Schema.optional<typeof Schema.UUID>;
    type: Schema.Literal<["com.shwfed.table.column.tree-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 }: ColumnDefDeps): Partial<ColumnDef<unknown, unknown>>;
