import { OnInit, NgZone } from '@angular/core';
import { DialogRef } from 'angular2-modal';
import { LocalizationService } from "../services/LocalizationService";
import { BaseDialogComponent, BaseDialogModel } from "../services/DialogService";
import { DocumentsService } from "../services/DocumentsService";
import { DocumentIdentifier, SharePoint } from '../../../models';
export interface IDocumentPickerScope {
    currentSiteUrl: string;
    onSelectedDocumentChanged: (selectedDocument: DocumentIdentifier.IDocumentIdentifier) => void;
    filterScopes: Array<string>;
    selectedFilterScope: string;
    libraries: Array<SharePoint.IListIdentifier>;
    selectedLibrary: SharePoint.IListIdentifier;
    documentsInCurrentSite: Array<DocumentIdentifier.IDocumentIdentifier>;
    documentsInAllSites: Array<DocumentIdentifier.IDocumentIdentifier>;
    selectedDocument: DocumentIdentifier.IDocumentIdentifier;
    folderNavigationNodes: Array<IFolderNavigationNode>;
    currentFolder: IFolderNavigationNode;
    navigateToFolder: (folder: IFolderNavigationNode, index: number) => void;
    changeSelectedFilterScope: (selectedItem: string) => void;
    changeSelectedLibrary: (selectedLibrary: SharePoint.IListIdentifier) => void;
    changeSelectedDocument: (selectedDocument: DocumentIdentifier.IDocumentIdentifier) => void;
    isLoadingLibraries: boolean;
    isLoadingDocuments: boolean;
    isAllowUploadDocument: boolean;
    completedSearch: boolean;
    openUploadDocumentDialog: () => void;
    searchString: string;
    searchCurrentSite: () => void;
    searchAllSites: () => void;
    getIcon: (document: DocumentIdentifier.IDocumentIdentifier) => string;
    getFileName(document: DocumentIdentifier.IDocumentIdentifier): string;
}
export interface IFolderNavigationNode {
    title: string;
    url: string;
    isRoot?: boolean;
}
export declare class DocumentPicker implements OnInit {
    private zoneService;
    private localizationService;
    private documentsService;
    currentSiteUrl: string;
    onSelectedDocumentChanged: Function;
    static ngName: string;
    static searchLimit: number;
    scope: IDocumentPickerScope;
    constructor(zoneService: NgZone, localizationService: LocalizationService, documentsService: DocumentsService);
    ngOnInit(): void;
    init: () => void;
    private reloadCurrentSiteDocuments;
    private reloadAllSitesDocuments;
    private reloadLibraries;
    private setSelectedDocument;
    private navigateToFolder;
    private selectFolder;
    private resetFolderNavigationNodes;
    private renderFolderNavigationNodes;
    private filterFile;
}
export interface IDocumentPickerFormScope {
    ok: () => void;
    close: () => void;
    currentSiteUrl: string;
    okHandler: (document: DocumentIdentifier.IDocumentIdentifier) => void;
    selectedDocument: DocumentIdentifier.IDocumentIdentifier;
    onSelectedDocumentChanged: (selectedDocument: DocumentIdentifier.IDocumentIdentifier) => void;
}
export declare class DocumentPickerForm extends BaseDialogComponent<BaseDialogModel<IDocumentPickerFormScope>> {
    dialog: DialogRef<BaseDialogModel<IDocumentPickerFormScope>>;
    static templateGuid: string;
    scope: IDocumentPickerFormScope;
    constructor(dialog: DialogRef<BaseDialogModel<IDocumentPickerFormScope>>);
    private ok;
}
