import type { Struct } from '@viamrobotics/sdk';
import type { Entity } from 'koota';
import { type Component, type Snippet } from 'svelte';
import type { FragmentInfo } from '../hooks/useFragmentInfo.svelte';
import { type CameraPose } from '../hooks/useControls.svelte';
interface LocalConfigProps {
    current: Struct;
    isDirty: boolean;
    setLocalPartConfig: (config: Struct) => void;
}
interface Props {
    partID?: string;
    inputBindingsEnabled?: boolean;
    localConfigProps?: LocalConfigProps;
    /**
     * Maps a component name to the fragment that defines it. Embedded hosts
     * supply this; in standalone it is computed from fragment queries (omit).
     */
    componentNameToFragmentInfo?: Record<string, FragmentInfo>;
    /**
     * Allows adding additional tabs to the settings panel
     */
    settingsTabs?: {
        label: string;
        component: Component;
    }[];
    /**
     * Allows setting the initial camera pose
     */
    cameraPose?: CameraPose;
    /**
     * Snippet for Three.js objects
     */
    children?: Snippet;
    /**
     * Snippet to inject items in the top middle dashboard
     */
    dashboard?: Snippet;
    /**
     * Snippet to inject items into the details panel
     */
    details?: Snippet<[{
        entity: Entity;
    }]>;
}
declare const App: Component<Props, {}, "">;
type App = ReturnType<typeof App>;
export default App;
