import type { CabinetNode, GeometryContext } from '@pascal-app/core'; import { type SinkBowlSpec } from './appliance-layout.js'; export type CabinetSlab = { size: [number, number, number]; position: [number, number, number]; }; export type RunSinkCut = { bowls: SinkBowlSpec[]; x: number; z: number; }; export declare function getCabinetCountertopLayout(node: CabinetNode, ctx?: GeometryContext): { span: import("./run-layout.js").RunSpan; modules: { object: "node"; name?: string | undefined; parentId: string | null; visible: boolean; camera?: { position: [number, number, number]; target: [number, number, number]; mode: "orthographic" | "perspective"; fov?: number | undefined; zoom?: number | undefined; } | undefined; metadata: Record; provenance?: { refs: { ns?: string | undefined; id: string; role?: "absorbed" | "alias" | "derived" | "piece" | "primary" | undefined; }[]; lineage?: { op: "attach" | "convert" | "duplicate" | "import" | "make-independent" | "merge" | "promote" | "split"; fromIds: string[]; } | undefined; } | undefined; position: [number, number, number]; rotation: number; supportSlabId?: string | undefined; width: number; depth: number; carcassHeight: number; operationState: number; plinthHeight: number; toeKickDepth: number; boardThickness: number; countertopThickness: number; countertopOverhang: number; countertopBackOverhang: number; withFinishedBack: boolean; frontThickness: number; frontGap: number; frontStyle: "raised-arch" | "shaker" | "slab"; panelReady: boolean; handleStyle: "bar" | "cutout" | "hole" | "knob" | "none"; handlePosition: "auto" | "center" | "top"; frontOverlay: "full" | "inset"; withBottomPanel: boolean; showPlinth: boolean; withCountertop: boolean; material?: { id?: string | undefined; preset?: "brick" | "concrete" | "custom" | "glass" | "marble" | "metal" | "plaster" | "tile" | "white" | "wood" | undefined; properties?: { color: string; roughness: number; metalness: number; opacity: number; transparent: boolean; side: "back" | "double" | "front"; } | undefined; texture?: { url: string; repeat?: [number, number] | undefined; scale?: number | undefined; } | undefined; } | undefined; materialPreset?: string | undefined; slots?: Record | undefined; stack?: ({ id: string; height?: number | undefined; type: "shelf"; shelfCount?: number | undefined; } | { id: string; height?: number | undefined; type: "drawer"; drawerCount?: number | undefined; } | { id: string; height?: number | undefined; type: "door"; doorType?: "double" | "glass" | "single-left" | "single-right" | undefined; shelfCount?: number | undefined; } | { id: string; height?: number | undefined; type: "sink"; sinkLayout?: "double" | "double-offset" | "single" | undefined; } | { id: string; height?: number | undefined; type: "oven"; } | { id: string; height?: number | undefined; type: "microwave"; } | { id: string; height?: number | undefined; type: "dishwasher"; } | { id: string; height?: number | undefined; cooktopBurnersOn?: boolean | undefined; cooktopActiveBurners?: number[] | undefined; cooktopKnobProgress?: number[] | undefined; cooktopShowGrate?: boolean | undefined; type: "cooktop-gas"; cooktopLayout?: "gas-2burner" | "gas-4burner" | "gas-5burner-wok" | "gas-6burner" | undefined; } | { id: string; height?: number | undefined; cooktopBurnersOn?: boolean | undefined; cooktopActiveBurners?: number[] | undefined; cooktopKnobProgress?: number[] | undefined; cooktopShowGrate?: boolean | undefined; type: "cooktop-induction"; cooktopLayout?: "induction-2zone" | "induction-4zone" | undefined; } | { id: string; height?: number | undefined; type: "pull-out-pantry"; shelfCount?: number | undefined; pantryRackStyle?: "glass" | "tray" | "wire" | undefined; } | { id: string; height?: number | undefined; type: "fridge-single"; } | { id: string; height?: number | undefined; type: "fridge-double"; } | { id: string; height?: number | undefined; type: "fridge-top-freezer"; } | { id: string; height?: number | undefined; type: "fridge-bottom-freezer"; } | { id: string; height?: number | undefined; type: "hood-pyramid"; } | { id: string; height?: number | undefined; type: "hood-curved-glass"; })[] | undefined; id: `cabinet-module_${string}`; type: "cabinet-module"; children: string[]; cabinetType: "base" | "tall"; moduleKind: "corner-filler" | "standard" | "wall-filler"; openSide?: "left" | "right" | undefined; cornerShelf?: boolean | undefined; topFinish: "none" | "top-cabinet" | "trim"; topFinishHeight: number; topFinishDepth: number; }[]; ends: import("./run-layout.js").RunSpanEnds; backOverhang: number; countertop: CabinetSlab | null; bar: { slab: CabinetSlab; support: CabinetSlab; edge: NonNullable['edge']; } | null; sinkCuts: RunSinkCut[]; }[]; //# sourceMappingURL=countertop-layout.d.ts.map