import { Schema } from 'effect';
import type { Environment } from '../../../../../vendor/cel-js/lib/index.js';
export { getStructFieldDescription, getStructFieldTitle } from '../../../../table/utils/schema-meta.js';
type AnySchema = Schema.Schema<any, any, never>;
export declare const type: "com.shwfed.block.tabs";
export declare const compatibilityDate: "2026-05-06";
export declare const metadata: {
    readonly name: "标签页";
    readonly icon: "fluent:tabs-20-regular";
    readonly w: {
        readonly initial: 12;
        readonly min: 4;
        readonly max: number;
    };
    readonly h: {
        readonly initial: 6;
        readonly min: 4;
        readonly max: number;
    };
};
export declare const TabPaneMeta: Schema.Struct<{
    label: 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 schema(configure: (env: Environment) => void, blockRef: AnySchema): Schema.refine<{
    readonly type: "com.shwfed.block.tabs";
    readonly style?: string | undefined;
    readonly id: string;
    readonly displayName?: string | undefined;
    readonly compatibilityDate: "2026-05-06";
    readonly tabs: readonly {
        readonly label: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly id: string;
        readonly slot: {
            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<{
    id: Schema.refine<string, typeof Schema.String>;
    type: Schema.tag<"com.shwfed.block.tabs">;
    compatibilityDate: Schema.tag<"2026-05-06">;
    displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
    style: Schema.optional<typeof Schema.String>;
    tabs: Schema.refine<readonly {
        readonly label: readonly [{
            readonly locale: "zh";
            readonly message: string;
        }, ...{
            readonly locale: "en" | "ja" | "ko";
            readonly message: string;
        }[]];
        readonly id: string;
        readonly slot: {
            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.filter<Schema.Array$<Schema.Struct<{
        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"]>>;
                    }>>;
                }>;
            }>>>;
        }>>;
        label: 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>;
    }>>>>;
}>>;
export declare function defaultBody(): Record<string, unknown>;
export type Value = Schema.Schema.Type<ReturnType<typeof schema>>;
