import { Schema } from 'effect';
import type { Environment } from '../../../../../vendor/cel-js/lib/index.js';
type AnySchema = Schema.Schema<any, any, never>;
export declare const type: "com.shwfed.block.form";
export declare const compatibilityDate: "2026-05-06";
export declare const metadata: {
    readonly name: "表单";
    readonly icon: "fluent:form-20-regular";
    readonly w: {
        readonly initial: 32;
        readonly min: 12;
        readonly max: number;
    };
    readonly h: {
        readonly initial: 8;
        readonly min: 3;
        readonly max: number;
    };
};
export declare function schema(configure: (env: Environment) => void, _blockRef: AnySchema): Schema.Struct<{
    id: Schema.refine<string, typeof Schema.String>;
    type: Schema.tag<"com.shwfed.block.form">;
    compatibilityDate: Schema.tag<"2026-05-06">;
    form: Schema.refine<{
        readonly style?: string | undefined;
        readonly id?: string | undefined;
        readonly initial?: {
            readonly data: string;
            readonly request?: string | undefined;
        } | undefined;
        readonly displayName?: string | undefined;
        readonly kind: "shwfed.component.form";
        readonly fields: readonly any[];
        readonly layouts: readonly {
            readonly name: string;
            readonly layout: {
                readonly style?: string | undefined;
                readonly columns: number;
                readonly gap?: number | undefined;
                readonly rows?: number | undefined;
                readonly placements: {
                    readonly [x: string]: {
                        readonly area: readonly [readonly [number, number], readonly [number, number]];
                        readonly v?: "stretch" | "center" | "end" | "start" | undefined;
                        readonly h?: "stretch" | "center" | "end" | "start" | undefined;
                    };
                };
            };
            readonly media?: string | undefined;
        }[];
        readonly readonly?: string | undefined;
    }, Schema.Struct<{
        fields: Schema.Array$<Schema.Schema<any, any, never>>;
        layouts: Schema.refine<readonly {
            readonly name: string;
            readonly layout: {
                readonly style?: string | undefined;
                readonly columns: number;
                readonly gap?: number | undefined;
                readonly rows?: number | undefined;
                readonly placements: {
                    readonly [x: string]: {
                        readonly area: readonly [readonly [number, number], readonly [number, number]];
                        readonly v?: "stretch" | "center" | "end" | "start" | undefined;
                        readonly h?: "stretch" | "center" | "end" | "start" | undefined;
                    };
                };
            };
            readonly media?: string | undefined;
        }[], Schema.Array$<Schema.Struct<{
            name: Schema.SchemaClass<string, string, never>;
            media: Schema.optional<Schema.Schema<string, string, never>>;
            layout: Schema.Struct<{
                columns: Schema.refine<number, Schema.filter<typeof Schema.Number>>;
                rows: Schema.optional<Schema.refine<number, Schema.filter<typeof Schema.Number>>>;
                gap: Schema.optional<Schema.refine<number, Schema.filter<typeof Schema.Number>>>;
                style: Schema.optional<Schema.SchemaClass<string, string, never>>;
                placements: Schema.Record$<typeof Schema.String, Schema.Struct<{
                    area: Schema.refine<readonly [readonly [number, number], readonly [number, number]], Schema.Tuple2<Schema.Tuple2<Schema.filter<Schema.filter<typeof Schema.Number>>, Schema.filter<Schema.filter<typeof Schema.Number>>>, Schema.Tuple2<Schema.filter<Schema.filter<typeof Schema.Number>>, Schema.filter<Schema.filter<typeof Schema.Number>>>>>;
                    h: Schema.optional<Schema.Literal<["start", "center", "end", "stretch"]>>;
                    v: Schema.optional<Schema.Literal<["start", "center", "end", "stretch"]>>;
                }>>;
            }>;
        }>>>;
        kind: Schema.tag<"shwfed.component.form">;
        id: Schema.optional<Schema.refine<string, typeof Schema.String>>;
        displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
        initial: Schema.optional<Schema.transform<Schema.Union<[Schema.Schema<string, string, never>, Schema.Struct<{
            request: Schema.optional<Schema.Schema<string, string, never>>;
            data: Schema.Schema<string, string, never>;
        }>]>, Schema.Struct<{
            request: Schema.optional<Schema.Schema<string, string, never>>;
            data: Schema.Schema<string, string, never>;
        }>>>;
        readonly: Schema.optional<Schema.Schema<string, string, never>>;
        style: Schema.optional<typeof Schema.String>;
    }>>;
}>;
export declare function defaultBody(): Record<string, unknown>;
export type Value = Schema.Schema.Type<ReturnType<typeof schema>>;
export {};
