import { Renderable, TNode } from '@tempots/dom';
import type { SchemaContext } from '../schema-context';
/**
 * Container layout configuration from x:ui
 */
export interface ContainerLayoutConfig {
    /** Container format type */
    format?: 'fieldset' | 'tabs' | 'accordion' | 'group' | 'grid';
    /** Property ordering */
    order?: string[];
    /** Property grouping */
    groups?: Record<string, string[]>;
    /** Grid columns configuration */
    cols?: number | {
        sm?: number;
        md?: number;
        lg?: number;
        xl?: number;
        '2xl'?: number;
    };
    /** Additional layout options */
    [key: string]: unknown;
}
/**
 * Extract container layout configuration from schema x:ui
 */
export declare function getContainerLayout(ctx: SchemaContext): ContainerLayoutConfig | undefined;
/**
 * Fieldset container layout
 */
export declare function FieldsetContainer({ title, children, }: {
    title?: string;
    children: TNode[];
}): Renderable;
/**
 * Group container layout (using Card)
 */
export declare function GroupContainer({ title, children, }: {
    title?: string;
    children: TNode[];
}): Renderable;
/**
 * Grid container layout
 */
export declare function GridContainer({ cols, children, }: {
    cols?: ContainerLayoutConfig['cols'];
    children: TNode[];
}): Renderable;
/**
 * Tabs container layout
 */
export declare function TabsContainer({ groups, children, }: {
    groups?: Record<string, TNode[]>;
    children: TNode[];
}): Renderable;
/**
 * Accordion container layout
 */
export declare function AccordionContainer({ groups, children, }: {
    groups?: Record<string, TNode[]>;
    children: TNode[];
}): Renderable;
/**
 * Apply container layout to children based on configuration
 */
export declare function applyContainerLayout(config: ContainerLayoutConfig | undefined, ctx: SchemaContext, children: TNode[], propertyNames?: string[]): Renderable;
