import type { BufferGeometry } from 'three';
import type { Snapshot } from '../../buf/draw/v1/snapshot_pb';
import type { SuccessMessage } from '../../loaders/pcd/messages';
interface FileDropSuccess {
    success: true;
    name: string;
}
export interface SnapshotFileDropSuccess extends FileDropSuccess {
    type: 'snapshot';
    snapshot: Snapshot;
}
export interface PointcloudFileDropSuccess extends FileDropSuccess {
    type: 'pcd';
    pcd: SuccessMessage;
}
export interface PlyFileDropSuccess extends FileDropSuccess {
    type: 'ply';
    ply: BufferGeometry;
}
export declare class FileDropperError extends Error {
    constructor(message: string, options?: ErrorOptions);
}
export type FileDropperSuccess = SnapshotFileDropSuccess | PointcloudFileDropSuccess | PlyFileDropSuccess;
export interface FileDropperFailure {
    success: false;
    error: FileDropperError;
}
export type FileDropperResult = FileDropperSuccess | FileDropperFailure;
export type FileDropperParams = {
    name: string;
    extension: string;
    prefix: string | undefined;
    content: string | ArrayBuffer | null | undefined;
};
export type FileDropper = (params: FileDropperParams) => Promise<FileDropperResult>;
export {};
