/** Where a freshly uploaded file lands: scene metres in a 3D viewer, degrees on the map. */ export interface IntakePlacement { x?: number; y?: number; z?: number; lat?: number; lng?: number; elevation?: number; rotation?: number; scale?: number; } export interface FileIntakeOptions { /** Omitted for a map file that belongs to no building. */ buildingId?: number; existingNames: string[]; uploadFile: (args: { fileData: unknown; buildingId?: number; }) => Promise; /** The File record's `type`. Defaults to 'system'; a buildingless map file is a 'map-file'. */ recordType?: string; /** Point clouds convert through a service, so the viewer that renders them supplies the route. */ uploadPointCloud?: (file: File) => Promise; } export interface IntakeResult { id?: number; } /** * The one upload path for every viewer: convert if the kind needs it, report every phase through * the shared task store, then write the record with whatever columns the caller's placement uses. */ export declare function useFileIntake({ buildingId, existingNames, uploadFile, recordType, uploadPointCloud, }: FileIntakeOptions): { submit: (file: File, at?: IntakePlacement) => Promise; needsPlacement: (file: File) => boolean; }; //# sourceMappingURL=useFileIntake.d.ts.map