import { ItemSubtype, ItemType } from '@awhere/interfaces';
import ItemBase from './ItemBase';
import { Watcher } from '../Watcher';
export default class Item extends ItemBase {
    private static basePath;
    static fromJSON<T extends ItemBase>(json: any): T;
    static upload(file: File, parent: string): Promise<import("axios").AxiosResponse<any, any>>;
    static fromId<T extends ItemBase>(id: string): Promise<T>;
    static explore(options?: IExploreOptions): Promise<any>;
    static watch(itemId: string): Promise<Watcher>;
}
declare enum OwnerCondition {
    me = "me",
    notme = "notme",
    any = "any"
}
declare enum SortWithoutKeyword {
    name = "name",
    lastModified = "lastModified"
}
declare enum SortWithKeyword {
    relavent = "relevant",
    lastModified = "lastModified"
}
declare enum SortOrder {
    ascending = "ascending",
    descending = "descending"
}
interface IExploreOptions {
    keyword?: string;
    owner?: OwnerCondition | keyof typeof OwnerCondition | string;
    trashed?: boolean | string;
    skip?: number | string;
    limit?: number | string;
    type?: ItemType[] | (keyof typeof ItemType)[] | string[] | string;
    subtype?: ItemSubtype[] | (keyof typeof ItemSubtype)[] | string[] | string;
    parent?: string | null;
    hidden?: boolean | string;
    hierarchical?: boolean | string;
    recursive?: boolean | string;
    sortBy?: SortWithoutKeyword | SortWithKeyword | keyof typeof SortWithoutKeyword | keyof typeof SortWithKeyword;
    sortOrder?: SortOrder | keyof typeof SortOrder;
}
export {};
