import { SdApiService } from '@sd-angular/core/api';
import { IFirebaseConfiguration } from '@sd-angular/core/common';
import { SdDbQuery, SdDbRegister, SdDbRes, SdRegisterOption } from './db.model';
export declare class SdDbService {
    #private;
    private apiService;
    private firebaseConfiguration;
    get hasConfiguration(): boolean;
    constructor(apiService: SdApiService, firebaseConfiguration: IFirebaseConfiguration);
    register: <T = any>(collection: string, option?: SdRegisterOption) => SdDbRegister<T>;
    get: <T = any>(collection: string, id: string, option?: SdRegisterOption) => Promise<SdDbRes<T>>;
    set: <T = any>(collection: string, id: string, data: T, option?: SdRegisterOption) => Promise<void>;
    remove: (collection: string, id: string, option?: SdRegisterOption) => Promise<void>;
    find: <T = any>(collection: string, query?: SdDbQuery, option?: SdRegisterOption) => Promise<SdDbRes<(T & {
        documentId: string;
    })[]>>;
    copy: <T = any>(collection: string, source: {
        functionUrl?: string;
        project?: string;
        env: string;
        fromId: string;
    }, toId: string, option?: SdRegisterOption) => Promise<void>;
    clone: <T = any>(args: {
        collection?: string;
        documentId?: string;
    }, from: {
        functionUrl?: string;
        project?: string;
        env: string;
        collection: string;
        documentId: string;
    }) => Promise<void>;
}
