import type { NodeDefinition } from './schema';
/**
 * Creates conditional layout branches based on item type.
 * Used for polymorphic repeaters where each item type has a different layout.
 *
 * @param itemTypesMap - Map of type IDs to their layout definitions
 * @param options - Configuration options
 * @returns Array of conditional node definitions
 *
 * @example
 * ```typescript
 * // In a repeater with items: [{_type: 'card', ...}, {_type: 'quote', ...}]
 * const children = typeBasedLayout({
 *   card: stack({}, [
 *     text({ as: 'h3' }, bind('item.title')),
 *     richText({}, bind('item.body'))
 *   ]),
 *   quote: stack({}, [
 *     richText({}, bind('item.text')),
 *     text({ className: 'author' }, bind('item.author'))
 *   ])
 * }, { itemName: 'item' });
 * ```
 */
export declare function typeBasedLayout(itemTypesMap: Record<string, NodeDefinition | NodeDefinition[]>, options?: {
    /**
     * Name of the repeater item variable (default: 'item')
     */
    itemName?: string;
}): NodeDefinition[];
