import { Schema } from 'effect';
import type { Environment } from '../../../../../vendor/cel-js/lib/index.js';
export declare const type: "com.shwfed.form.field.collapsible";
export declare const compatibilityDate: "2026-05-20";
export declare const metadata: {
    readonly name: "可折叠区域";
    readonly icon: "fluent:chevron-down-20-regular";
    readonly w: {
        readonly initial: 12;
        readonly min: 4;
        readonly max: number;
    };
    readonly h: {
        readonly initial: 4;
        readonly min: 2;
        readonly max: number;
        readonly grow: true;
    };
    readonly inlineConfig: false;
};
/**
 * A collapsible section. Pure view — children are flat in the form state
 * (no subtree introduced by the section), and the collapsed state lives only
 * in the runtime component's local ref (not persisted, not authored as CEL).
 *
 * Deliberately does **not** include `commonFieldFields` — `displayName` /
 * `hidden` / etc. are field-flavored concepts that don't fit a structural
 * grouping. We carry only the minimum: an `id` for the parent layout to
 * reference, a markdown `header` (CEL-interpolated), the `defaultCollapsed`
 * authoring default, and the nested `unit` whose children are rendered
 * inline.
 */
export declare function schema(configure: (env: Environment) => void): Schema.Struct<{
    type: Schema.Literal<["com.shwfed.form.field.collapsible"]>;
    compatibilityDate: Schema.Literal<["2026-05-20"]>;
    id: Schema.refine<string, typeof Schema.String>;
    displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
    header: 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>;
    }>]>;
    defaultCollapsed: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
    unit: Schema.suspend<Readonly<{
        fields: ReadonlyArray<import("../../../schema.js").FieldValue>;
        layouts: ReadonlyArray<import("../../../schema.js").LayoutSetValue>;
    }>, Readonly<{
        fields: ReadonlyArray<import("../../../schema.js").FieldValue>;
        layouts: ReadonlyArray<import("../../../schema.js").LayoutSetValue>;
    }>, never>;
}>;
export type Value = Schema.Schema.Type<ReturnType<typeof schema>>;
export declare function defaults(): Partial<Value>;
