import { FileHandle } from './FileHandle';
export declare enum ExternalFileHandleConcreteTypeEnum {
    ProxyFileHandle = "org.sagebionetworks.repo.model.file.ProxyFileHandle",
    ExternalObjectStoreFileHandle = "org.sagebionetworks.repo.model.file.ExternalObjectStoreFileHandle",
    ExternalFileHandle = "org.sagebionetworks.repo.model.file.ExternalFileHandle"
}
export declare type ExternalObjectStoreFileHandle = ExternalFileHandleInterface & {
    /** This is used to indicate the implementation of this interface */
    concreteType: ExternalFileHandleConcreteTypeEnum.ExternalObjectStoreFileHandle;
    /** The bucket to use. Do NOT set this value when creating a ExternalObjectStoreFileHandle since it will be it will be overwritten with the value defined in the ExternalObjectStorageLocationSetting it references. */
    readonly bucket: string;
};
export declare function assertIsExternalFileHandle(x?: FileHandle): asserts x is ExternalFileHandle;
export declare type ExternalFileHandle = ExternalFileHandleInterface & {
    concreteType: ExternalFileHandleConcreteTypeEnum.ExternalFileHandle;
    externalURL: string;
};
export declare type ProxyFileHandle = ExternalFileHandleInterface & {
    concreteType: ExternalFileHandleConcreteTypeEnum.ProxyFileHandle;
    filePath: string;
};
export declare function implementsExternalFileHandleInterface(x: ExternalFileHandleInterface): x is ExternalFileHandleInterface;
export interface ExternalFileHandleInterface extends FileHandle {
}
