import { Api } from './api';
import { Meta } from './core';
import { PromiseProgress, HttpRequestOptions, PathEventEmitter } from '@ztimson/utils';
export type DirMeta = {
    children: (DirMeta | FileMeta)[];
    path: string;
    name: string;
    mime: 'directory';
    size: number;
};
export type FileMeta = Meta & {
    path: string;
    name: string;
    mime: string;
    size: number;
    missing?: boolean;
};
export declare class Storage extends PathEventEmitter {
    private readonly path;
    readonly api: Api;
    constructor(api: Api | string, path?: string);
    copy(source: string, destination: string): Promise<DirMeta | FileMeta>;
    delete(path: string): Promise<void>;
    download(path: string, opts?: HttpRequestOptions & {
        'downloadAs'?: string;
    }): PromiseProgress<Blob>;
    list(path?: string): Promise<DirMeta | FileMeta>;
    open(path: string, target: false): string;
    open(path: string, target?: '_blank' | '_self'): Window | null;
    mkdir(path: string): Promise<DirMeta>;
    move(source: string, destination: string): Promise<DirMeta | FileMeta>;
    upload(files?: File | File[] | null, opts?: string | {
        path?: string;
        accept?: string;
        multiple?: boolean;
    }): PromiseProgress<FileMeta[]>;
}
//# sourceMappingURL=storage.d.ts.map