import { AppService } from '../app/app.service';
import { Filter, DocsContentStyles } from './types';
import { DatabaseDirectService } from './direct';
import { DatabaseServerService } from './server';
export declare class DatabaseService {
    private DatabaseDirect;
    private DatabaseServer;
    app: AppService;
    constructor(app: AppService);
    direct(): DatabaseDirectService;
    server(): DatabaseServerService;
    all<Item>(sheet: string, cacheTime?: number): Promise<Item[]>;
    query<Item>(sheet: string, filter: Filter, local?: boolean, cacheTime?: number): Promise<Item[]>;
    items(sheet: string, filter?: Filter, local?: boolean, cacheTime?: number): Promise<{}[]>;
    item<Item>(sheet: string, finder: string | Filter, local?: boolean, cacheTime?: number): Promise<Item>;
    content(contentSource: string, // doc url | published url
    styles?: DocsContentStyles, cacheTime?: number): Promise<{
        content: string;
    }>;
    itemAndContent<Item>(sheet: string, finder: string | Filter, item?: Item, // loaded item where not sure there is content or not
    styles?: DocsContentStyles, local?: boolean, cacheTime?: number): Promise<Item>;
    set<Data>(sheet: string, key: string, data: Data): Promise<any>;
    update<Data>(sheet: string, key: string, data: Data): Promise<any>;
    add<Data>(sheet: string, key: string, data: Data): Promise<any>;
    remove(sheet: string, key: string): Promise<any>;
    increase(sheet: string, key: string, increasing: string | string[] | {
        [path: string]: number;
    }): Promise<any>;
    clearCacheAll(input: string | string[]): Promise<void>;
    clearCacheItem<Item>(sheet: string, item: Item): Promise<void>;
    private isDirect;
    private isContentSourceFromDocs;
    private isDocsContentSourceNotDirectly;
}
