/*!
 * Copyright Sysdoc @ 2019
 */
import { IItemAddResult, IItemUpdateResult } from "@pnp/sp-commonjs/items/types";
import { Dictionary } from "@sysdoc/utilities";
import { IPnPField } from "../jsom/IPnPField";
import { ISPRestQueryConfig } from "./SPBasicRestProvider";
export interface ISPBasicRestProvider {
    listTitle: string;
    fields: string[];
    fieldPrefix?: string;
    contentTypeId?: string;
    includeFields?: string[];
    expandFields?: string[];
    supportsAttachments?: boolean;
    getSchema(): Promise<Dictionary<IPnPField>>;
    whenReady(): Promise<Dictionary<IPnPField>>;
    createSchemaFromFields(fields: IPnPField[]): any;
    toItem(item: any): any;
    prepareObject(obj: any): any;
    create(obj: any): Promise<IItemAddResult>;
    update(obj: any): Promise<IItemUpdateResult>;
    updateBatch(objs: any[], updateKeys?: string[]): Promise<void>;
    delete(key: number): Promise<void>;
    deleteBatch(key: number[]): Promise<void>;
    get(key: number): Promise<any>;
    getByQuery(filter: string, config?: ISPRestQueryConfig): Promise<any[]>;
    getAll(): Promise<any[]>;
}
