import { Schema } from 'effect';
import { type VNode } from 'vue';
import type { Environment } from '../../../vendor/cel-js/lib/index.js';
import { type ResultType } from '../../../share/expression.js';
export declare const Align: Schema.Literal<["left", "center", "right"]>;
export declare function columnIdentityFields(): {
    id: Schema.refine<string, typeof Schema.String>;
    groupId: Schema.optional<typeof Schema.UUID>;
};
export declare function columnFields(configure: (env: Environment) => void): {
    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>;
    }>]>;
    accessor: 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>;
    }>]>>;
    id: Schema.refine<string, typeof Schema.String>;
    groupId: Schema.optional<typeof Schema.UUID>;
};
export declare function editableColumnFields(): {
    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>;
};
export declare function editableHeader(titleText: string | undefined): () => VNode;
export declare function registerRowVariablesIfAbsent(env: Environment): void;
export declare function CelRowAccess(configure: (env: Environment) => void, options?: {
    resultType?: ResultType;
}): Schema.Schema<string, string, never>;
export declare function LocaleMarkdownWithRow(configure: (env: Environment) => void): Schema.filter<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>;
}>]>>;
export declare function derivedRowField(configure: (env: Environment) => void, resultType: ResultType): Schema.optional<Schema.Struct<{
    mode: Schema.Literal<["formula", "prefill"]>;
    expression: Schema.Schema<string, string, never>;
}>>;
