import type { FragmentRefNode } from './page.js';
export interface LayoutSlot {
    name: string;
    required: boolean;
}
/** Default content for non-required layout slots, keyed by slot name. */
export type LayoutDefaults = Record<string, FragmentRefNode[]>;
export interface LayoutDefinition {
    name: string;
    slots: LayoutSlot[];
    /** Default fragment references for slots not provided by the page. */
    defaults?: LayoutDefaults;
}
export interface LayoutContract {
    name: string;
    slots: LayoutSlot[];
    defaults?: LayoutDefaults;
}
/** A compiled layout file as stored on disk. */
export interface CompiledLayout {
    name: string;
    slots: LayoutSlot[];
    defaults: LayoutDefaults;
}
