import { ViewContainerRef, OnInit, EventEmitter, NgZone } from '@angular/core';
import { DialogRef } from 'angular2-modal';
import { Enums } from "../Enums";
import { LocalizationService } from "../services/LocalizationService";
import { AjaxService } from "../services/AjaxService";
import { PortalTermStoreService } from "../services/PortalTermStoreService";
import { DialogService, BaseDialogModel, BaseDialogComponent } from "../services/DialogService";
import { ImageManagement, SharePoint, DocumentIdentifier, TermStore, Shared } from '../../../models';
export declare class ImageSettingService {
    private ajaxService;
    private localizationService;
    constructor(ajaxService: AjaxService, localizationService: LocalizationService);
    getImagePickerSettingLookupInformation: (renderer: (result: ImageManagement.IImagePickerSettingLookupInformation) => void) => void;
    getImagePickerSetting: (siteUrl: string, libraryUrl: string, renderer: (result: ImageManagement.ILibrarySetting) => void, useCache?: boolean) => void;
    saveImagePickerSetting: (librarySetting: ImageManagement.ILibrarySetting, renderer: (result: Shared.IApiOperationResult<any>) => void) => void;
    getCentralImageLocationSetting: (renderer: (result: ImageManagement.ICentralImageLocationSetting) => void, useCache?: boolean) => void;
    getCentralImageLocationSettingByLibraryId: (libraryId: string, renderer: (result: ImageManagement.ICentralImageLocation) => void) => void;
    saveCentralImageLocationSetting: (setting: ImageManagement.ICentralImageLocationSetting, renderer: (result: Shared.IApiOperationResult<any>) => void) => void;
    resolveImageLibraryUrl: (siteUrl: string, libraryUrl: string, renderer: (result: ImageManagement.ILibraryResolveResult) => void) => void;
}
export declare class ImageService {
    private ajaxService;
    private localizationService;
    private termService;
    constructor(ajaxService: AjaxService, localizationService: LocalizationService, termService: PortalTermStoreService);
    uploadImage: (siteUrl: string, listId: string, folderServerRelativeUrl: string, fileName: string, fileType: string, data: string, renderer: () => void) => void;
    getAllImageLibraries: (siteUrl: string, renderer: (n: SharePoint.IListIdentifier[]) => void) => void;
    searchImages: (siteUrl: string, listId: string, query: ImageManagement.IQueryImages, folderServerRelativeUrl: string, recursive: boolean, renderer: (n: DocumentIdentifier.IDocumentIdentifier[]) => void) => void;
    openSPUploadDocumentDialog: (siteUrl: string, libraryId: string, renderer?: (result: number, newFile: SharePoint.ISharePointNewFile) => void) => void;
    getImageRenditions: (siteUrl: string, renderer: (n: ImageManagement.IImageRenditionItem[]) => void) => void;
    getTopLevelTerm: (termSetId: string, render: (result: TermStore.ITerm[]) => void) => void;
    private formatFileContent;
}
export interface IFilterValue {
    id: string;
    value: string;
    displayValue: string;
    fieldName: string;
    typeAsString: string;
    filterType?: Enums.QueryFilterType;
}
export interface IImagePickerScope {
    preSelectImage: string;
    currentSiteUrl: string;
    siteCollectionUrl: string;
    onSelectedImageChanged: (selectedDocument: ImageManagement.IImageIdentifier) => void;
    isUploading: boolean;
    fileToUpload: any;
    libraries: Array<SharePoint.IListIdentifier>;
    selectedLibrary: SharePoint.IListIdentifier;
    currentFolderServerRelativeUrl: string;
    breadcrumb: Array<{
        title: string;
        url: string;
    }>;
    filterFields: Array<ImageManagement.IImageProperty>;
    filterValues: Array<IFilterValue>;
    availableImageRenditions: Array<ImageManagement.IImageRenditionItem>;
    openEditRenditionDialog: (imageRendition: ImageManagement.IImageRenditionItem) => void;
    isInSPContext: boolean;
    selectedImageRendition: number;
    updateImageUrl: (event: any) => void;
    imageList: Array<ImageManagement.IImageIdentifier>;
    documentsInAllSites: Array<ImageManagement.IImageIdentifier>;
    selectedDocument: ImageManagement.IImageIdentifier;
    plainSelectedImageUrl: string;
    isLoadingRendition: boolean;
    changeSelectedLibrary: (selectedLibrary: SharePoint.IListIdentifier) => void;
    changeSelectedImage: ($event: any, selectedDocument: ImageManagement.IImageIdentifier) => void;
    haveAddListItemsPermission: boolean;
    haveEditListItemsPermission: boolean;
    isLoadingLibraries: boolean;
    isLoadingImages: boolean;
    onFileDrop: (dropFile: File) => void;
    searchCurrentSite: () => void;
    searchAllSites: () => void;
    getIcon: (url: string) => string;
    onOpenTermDropDown: (field: any) => () => void;
    onSelectTermOnDropDown: (field: any) => (term) => void;
    getImageTitle: (document: ImageManagement.IImageIdentifier) => string;
    getImageUrl: (document: ImageManagement.IImageIdentifier) => string;
    navigateToFolder: (folder: {
        title: string;
        url: string;
    }) => void;
    notInFilterMode: () => boolean;
    deleteFilterValue: (field: any) => void;
    searchImages: () => void;
    onFileReadChange: (file: File) => void;
    onSelectTermOnTermPicker: (field: any, term: any) => void;
    query: {
        searchString: string;
    };
}
export declare class ImagePicker implements OnInit {
    private localizationService;
    private imageService;
    private imageSettingService;
    private dialogService;
    private viewContainer;
    preSelectImage: string;
    onSelectedImageChanged: Function;
    static searchLimit: number;
    scope: IImagePickerScope;
    constructor(localizationService: LocalizationService, imageService: ImageService, imageSettingService: ImageSettingService, dialogService: DialogService, viewContainer: ViewContainerRef);
    private RenditionIDString;
    private watcher;
    static imageFileExtensions: string[];
    ngOnInit(): void;
    init: () => void;
    private resetSelectedImage;
    private loadImages;
    private loadImageLibraries;
    private getImageLibrarySetting;
    private setSelectedDocument;
    private updateImageUrl;
    private populateImagesResult;
    private onFileDrop;
    private uploadFile;
    private checkFileTypeValid;
    private registerWatchFilters;
    private addFilterValue;
    private handleAddFilter;
    private clearWatcherFilter;
    private openEditRenditionDialog;
    private getRenditionId;
}
export interface IImagePickerFormScope {
    ok: () => void;
    close: () => void;
    currentSiteUrl: string;
    preSelectImage: string;
    selectedImage: ImageManagement.IImageIdentifier;
    onSelectedImageChanged: (selectedImage: ImageManagement.IImageIdentifier) => void;
    okHandler: (selectedImage: ImageManagement.IImageIdentifier) => void;
}
export declare class ImagePickerForm extends BaseDialogComponent<BaseDialogModel<IImagePickerFormScope>> {
    dialog: DialogRef<BaseDialogModel<IImagePickerFormScope>>;
    imagePickerScope: IImagePickerFormScope;
    constructor(dialog: DialogRef<BaseDialogModel<IImagePickerFormScope>>);
    private ok;
}
export interface IBrowsepickerScope {
    browseType: string;
    preSelectImage: string;
    onSelected: (dialogResult: any, valueResult: any) => void;
    openForm: () => void;
    inline: boolean;
    windowClass: string;
}
export declare class ImageBrowseButton implements OnInit {
    private dialogService;
    private viewContainer;
    private ngZone;
    pickerScope: IBrowsepickerScope;
    cssClass: string;
    browseType: any;
    preSelectImage: string;
    disabledProp: any;
    onSelected: any;
    inline: any;
    windowClass: any;
    preSelectImageChange: EventEmitter<any>;
    disabledPropChange: EventEmitter<any>;
    constructor(dialogService: DialogService, viewContainer: ViewContainerRef, ngZone: NgZone);
    ngOnInit(): void;
    link: () => void;
    openForm: (callBack: (dialogResult: number, valueResult: any) => void) => void;
}
