import { Schema } from 'effect';
import type { Environment } from '../../../../../vendor/cel-js/lib/index.js';
export declare const type: "com.shwfed.actions.button.modal.layout";
export declare const compatibilityDate: "2026-05-11";
export declare const metadata: {
    readonly name: "模态窗口";
    readonly icon: "fluent:window-edit-20-regular";
    readonly drillable: true;
    readonly operations: readonly [{
        readonly id: "close";
        readonly name: "关闭弹窗";
        readonly icon: "fluent:dismiss-20-regular";
    }];
};
export declare function schema(configure: (env: Environment) => void): Schema.Struct<{
    type: Schema.Literal<["com.shwfed.actions.button.modal.layout"]>;
    compatibilityDate: Schema.Literal<["2026-05-11"]>;
    modalTitle: 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>;
    }>]>>;
    modalWidth: Schema.optional<Schema.refine<string, typeof Schema.String>>;
    modalMinHeight: Schema.optional<Schema.refine<string, typeof Schema.String>>;
    slot: Schema.refine<{
        readonly blocks: 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;
        }[];
    }, Schema.Struct<{
        blocks: 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"]>>;
                }>>;
            }>;
        }>>>;
    }>>;
}>;
export declare function defaultBody(): Record<string, unknown>;
export type Value = Schema.Schema.Type<ReturnType<typeof schema>>;
