/*!
 * Copyright Sysdoc @ 2019
 */
/// <reference types="sharepoint" />
import { ISPListItem } from "./ISPListItem";
import { SPListProvider } from "./SPListProvider";
export interface ISPListProviderDelegate<T extends ISPListItem> {
    onVersionConflict?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onItemDoesNotExist?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onGenericError?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onAccessDenied?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onDocAlreadyExists?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onListItemDeleted?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onInvalidFieldValue?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onNotSupported?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onRedirect?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onNotSupportedRequestVersion?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onFieldValueFailedValidation?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
    onItemValueFailedValidation?<V>(ctx: SP.ClientContext, list: SP.List, item: SP.ListItem, provider: SPListProvider<T>): Promise<V>;
}
