import { AnyString } from '../../utils/types';
/**
 * File System Storage Unit returned by the File System API.
 */
export interface IStorageUnit {
    /**
     * The type of the storage unit, e.g., "internal" or "external".
     */
    type: string;
    /**
     * The total capacity of the storage unit in bytes.
     */
    capacity: number;
    /**
     * The amount of free space available in the storage unit in bytes.
     */
    freeSpace: number;
    /**
     * The amount of usable space in the storage unit in bytes.
     */
    usableSpace: number;
    /**
     * Indicates whether the storage unit is removable (e.g., an SD card).
     */
    removable: boolean;
}
export declare const VIStorageUnit: {
    type: string;
    capacity: string;
    freeSpace: string;
    usableSpace: string;
    removable: string;
};
/**
 * Base File System interface for methods.
 */
export interface IFilePath {
    /**
     * Storage unit which is selected for performing file operations.
     */
    storageUnit: IStorageUnit;
    /**
     * File path within the storage unit.
     */
    filePath: string;
}
/**
 * Allowed extract method types for `extractFile()` operations.
 */
export type ExtractMethodType = 'zip' | AnyString;
/**
 * Properties of returned file from File System API.
 */
export interface IFile extends IFilePath {
    localUri: string;
    /**
     * Image thumbnail URI of the file, which can be used to display a preview of the file.
     * Note: Supported only on Linux.
     */
    imageThumbnailUriTemplate?: string;
    /**
     * Video thumbnail URI of the file, which can be used to display a preview of the file.
     * Note: Supported only on Linux.
     */
    videoThumbnailUriTemplate?: string;
    /**
     * Date and time when the file was created in milliseconds since the epoch.
     */
    createdAt?: number;
    lastModifiedAt?: number;
    sizeBytes?: number;
    mimeType?: string;
}
export interface IVideoFile extends IFile {
    videoDurationMs?: number;
    videoResolution?: {
        width: number;
        height: number;
    };
    videoFramerate?: number;
    videoBitrate?: number;
    videoCodec?: string;
    audioBitrate?: number;
    audioCodec?: string;
}
export interface IHeaders {
    [key: string]: string;
}
export declare const VIFilePath: {
    storageUnit: {
        object: {
            type: string;
            capacity: string;
            freeSpace: string;
            usableSpace: string;
            removable: string;
        };
    };
    filePath: string;
};
export interface ICopyFileOptions {
    overwrite?: boolean;
}
export declare const VICopyFileOptions: {
    overwrite: string;
};
export interface IMoveFileOptions {
    overwrite?: boolean;
}
export declare const VIMoveFileOptions: {
    overwrite: string;
};
