import type { Body, Node } from '../../schema';
export type CompositeBody = Extract
;
export type BodyNodeType = 'primitive' | 'group' | 'light';
export declare function inferBodyNodeType(node: Partial | undefined | null): BodyNodeType;
export declare function resolveBodyPartDisplayName(node: Partial | undefined | null): string;
export declare function hydrateBodyNodeTypes(node: Node): Node;
export declare function hydrateCompositeBodyTypes(body: CompositeBody | undefined): CompositeBody | undefined;
export declare function normalizeBodyPartPath(input: unknown): number[];
/**
* Get part at a specific path in a composite body
*/
export declare function getPartAtPath(body: CompositeBody | undefined, partPath: number[]): Node | null;
/**
* Replace part at a specific path in a composite body
*/
export declare function replacePartAtPath(body: CompositeBody | undefined, partPath: number[], replacement: Node): CompositeBody | undefined;
/**
* Remove part at a specific path in a composite body
*/
export declare function removePartAtPath(body: CompositeBody | undefined, partPath: number[]): CompositeBody | undefined;
/**
* Append a part at the specified parent path (root parts array when empty)
*/
export declare function appendPartAtPath(body: CompositeBody | undefined, parentPath: number[], newPart: Node): {
body: CompositeBody;
path: number[];
} | null;
//# sourceMappingURL=bodyParts.d.ts.map