import { Pose, Struct } from '@viamrobotics/sdk';
import { type Frame } from '../frame';
export interface PartConfig {
    components: {
        name: string;
        frame?: Frame;
    }[];
    fragment_mods?: {
        fragment_id: string;
        mods: any[];
    }[];
}
interface PartConfigContext {
    current: PartConfig;
    isDirty: boolean;
    hasEditPermissions: boolean;
    componentNameToFragmentId: Record<string, string>;
    updateFrame: (componentName: string, referenceFrame: string, pose: Pose, geometry?: Frame['geometry']) => void;
    deleteFrame: (componentName: string) => void;
    createFrame: (componentName: string) => void;
    save: () => void;
    discardChanges: () => void;
}
export declare const providePartConfig: (partID: () => string, params: () => AppEmbeddedPartConfigProps | undefined) => void;
export declare const usePartConfig: () => PartConfigContext;
interface AppEmbeddedPartConfigProps {
    current: Struct;
    isDirty: boolean;
    componentToFragId: Record<string, string>;
    setLocalPartConfig: (config: Struct) => void;
}
export {};
