import { ICustomAttribute, ISorting, ICabinetData, IAttribute, ISortingInfo, IFavoriteDocumentModel, ICabinetNameAndGuid, IDocumentAttribute, IWorkspaceAttributes, IPrimaryCabinetModel, IAttachment, IAttachmentsModel, ICheckOutInformation } from "../interfaces";
/**
 * Class represents Toast message
 */
export declare class Toast {
    /**
     * Toast type.
     */
    type: ToastType;
    /**
     * Toast message.
     */
    message: string;
    /**
     * Add "via ndOffice" to message if set to true.
     */
    viaNdOfficeExt: boolean;
    /**
     * Timeout for toast.
     */
    timeout: number;
    /**
     * Name of the drag'n'drop source item.
     */
    itemName: string;
    /**
     * Name of the drag'n'drop target container.
     */
    targetContainerName: string;
    /**
     * Url of the drag'n'drop target container.
     */
    targetContainerLink: string;
}
/**
 * Enum to set toast message type
 */
export declare enum ToastType {
    SimpleToast = 1,
    DetailedDocumentToast = 2,
    MultipleDocumetsToast = 3,
    DetailedFolderToast = 4,
    MultipleItemsToast = 5,
    FolderDraggedToWorkspaceToast = 6,
    TopLevelFolderMessage = 7,
    MultipleTopLevelFolderMessage = 8,
    NdClickToast = 9,
}
/**
 * Subclass representing an envelope attachment.
*/
export declare class Attachment implements IAttachment {
    /**
     * The attachment type.
     */
    AttachmentType: AttachmentType;
    /**
     * The envelope level attachment Id.
     */
    Id: string;
    /**
     * The attachment extension.
     */
    Ext: string;
    /**
     * The name of attachment.
     */
    Name: string;
    /**
     * A description of the attachment.
     */
    Description: string;
    /**
     * The UTC creation date of the attachment.
     */
    Created: string;
}
/**
 *  This class implements an attachement model.  This model holds information about envelope level document attachments.
 */
export declare class AttachmentsModel implements IAttachmentsModel {
    /**
     * Gets/Sets the number of document attachments.
     */
    Count: number;
    /**
     * Gets/Sets an array of attachements.
     */
    Attachments: Array<IAttachment>;
}
export declare class CheckOutInformation implements ICheckOutInformation {
    Name: string;
    Guid: string;
    When: Date;
    Comment: string;
}
export declare class Sorting implements ISorting {
    Field: number;
    Direction: string;
    UseMvpSorting: boolean;
    constructor(field: number | ISorting | string, direction?: SortDirectionType, useMvpSorting?: boolean);
    ToString(): string;
}
/** Designates the type of filtering to perform. The Force options are only really used by search.  They tell the FilterExtensionHelper to force the query to follow the filter and don't let it override.
*/
export declare enum FilterType {
    IncludeOnly = 0,
    Exclude = 1,
    ExcludeForce = 2,
}
export declare enum SortDirectionType {
    Ascending = 0,
    Descending = 1,
    None = 2,
}
/**
 * Enum to Convert CustomAttributeType to To SortFieldType Letter
 */
export declare enum CustomAttributeTypeLetter {
    Text = 2,
    Numeric = 3,
    Date = 1,
    Note = 2,
}
/**
 *  Enum to Convert SortFieldType to To SortFieldType Letter
 */
export declare enum SortFieldTypeLetter {
    D = 1,
    T = 2,
    N = 3,
}
/**
 * Eunum of Field Data Types
 */
export declare enum SortFieldType {
    LastModDate = 1,
    CreationDate = 1,
    DocName = 2,
    LastModUser = 2,
    ContainCabs = 2,
    ShareSpaceName = 2,
    CreationUser = 2,
    DocNumber = 2,
    EmailTo = 2,
    EmailAttach = 3,
    CalendarDate = 3,
    VerCount = 3,
}
/**
 * Enum to convert sort field to sort letter
 */
export declare enum SortFieldLetters {
    A = 10,
    B = 4,
    C = 3,
    E = 8,
    F = 7,
    I = 6,
    J = 5,
    K = 999,
    L = 11,
    V = 28,
    M = 19,
    N = 17,
    O = 18,
    P = 7,
    T = 27,
}
/**
 * Enum of Sort Field Mappings
 */
export declare enum SortField {
    Fulltext = 1,
    Acl = 2,
    DocName = 3,
    ShareSpaceName = 4,
    CreationDate = 5,
    CreationUser = 6,
    LastModDate = 7,
    LastModUser = 8,
    ContainCabs = 10,
    DocExten = 11,
    CalendarDate = 12,
    TopFolder = 13,
    Unprofiled = 14,
    DeletedCabs = 15,
    FolderEnvUrl = 16,
    EmailTo = 17,
    EmailCc = 18,
    EmailFrom = 19,
    JumboFolder = 20,
    EmailAttach = 27,
    VerCount = 28,
    DocNumber = 999,
    CustomBase = 1000,
}
export declare enum StandardAttributes {
    Everything = 1,
    Name = 3,
    NetbinderName = 4,
    Created = 5,
    CreatedBy = 6,
    Modified = 7,
    ModifiedBy = 8,
    Cabinets = 10,
    Ext = 11,
    CalDateStart = 12,
    CalDateEnd = 112,
    TopFolder = 13,
    Unprofiled = 14,
    DeletedCabs = 15,
    FolderEnvurl = 16,
    XmlTo = 17,
    XmlCc = 18,
    XmlFrom = 19,
    JumboFolders = 20,
    Locations = 24,
    Emails = 25,
    Dates = 126,
    DocDateTime = 26,
    EmailAttach = 27,
    EmailAttachExt = 28,
    EmailAttachCount = 29,
    EmailDomain = 30,
    EmailId = 31,
    EnvUrl = 32,
    OfficialVersionNumber = 33,
    VersionsCount = 34,
    Source = 35,
    SourceId = 36,
    CheckedOutUser = 54,
    CheckedOutDate = 55,
    CheckedOut = 56,
    SortBy = 997,
    DocId = 999,
    Approved = 201,
    Locked = 202,
    Signed = 203,
}
/** Billing Org Option definitions (bitflags from ndOptions and ndOptions2)
*   More details you can find: ndOrg\dirCache\accountOption
*/
export declare enum AccountOption {
    breakout = 1,
    AllowMultipleValues = 2,
    profiling = 4,
    fullText = 8,
    docFiling = 16,
    admCreUsers = 32,
    calendaring = 64,
    docDelivery = 128,
    LDS = 256,
    NetBinders = 512,
    syncOutlook = 1024,
    folderSearch = 2048,
    encStorage = 4096,
    secTemplate = 8192,
    virusScan = 16384,
    noDocMoves = 32768,
    trialAccount = 262144,
    privateStorage = 524288,
    encryptionKeyMgmt = 1048576,
    cabDisable = 2097152,
    dlp = 4194304,
    indexAllVersions = 8388608,
    ThreadKM = 16777216,
    Analytics = 33554432,
    ThreadKMDispInNdWeb = 67108864,
    ocrBacklogProcessing = 134217728,
    ocrActiveMonitoring = 268435456,
    allowND2 = 4294967296,
    docRetention = 8589934592,
    allowJumbo = 17179869184,
    docReview = 34359738368,
    federatedId = 68719476736,
    basicEdition = 137438953472,
    conMemberCount = 274877906944,
    expireWarnMsg = 549755813888,
    expireFinalMsg = 1099511627776,
    contentAnalysis = 2199023255552,
    noSecondary = 4398046511104,
    textFlowInt = 8796093022208,
    convertToPDF = 17592186044416,
    imgProc = 35184372088832,
    ndsyncWipe = 70368744177664,
    collaborationSpaces = 140737488355328,
    ndSyncDisable = 281474976710656,
    ExternalUsersIgnoreIPRange = 562949953421312,
}
/**
 * Enumeration that defines user options flags.
 * Reference ndOptions on the server side.
 * The master list of thise options is the ND_OPT_USR_* defines
 * in neDirAds\neDirAds.h
 */
export declare enum UserOptionsFlags {
    /**
     * This user has rights to create shared folders in My Cabinet
     */
    createShareFolder = 1,
    /**
     * Search takes the user to the advanced search page - ND00621
     */
    advancedSearch = 2,
    /**
     * Enabled PDF streaming for this user
     */
    pdfStreaming = 4,
    /**
     * If set, display names (in lists) as "firstname (mi) lastname", otherwise display as "lastname, firstname (mi)"
     */
    nameDisplayOrder = 8,
    /**
     * If set, this user has a blackberry device
     */
    blackberry = 16,
    /**
     * Recent Workspaces most recently viewed workspaces option
     */
    recentWorkspaces = 64,
    /**
     * Accept inbound mail only from this user's email address.  ND01154
     */
    restrictInBoundMail = 128,
    /**
     * Disallow any inbound mail.   ND01154
     */
    disallowInBoundMail = 256,
    /**
     * ND01376: 0 means sort by Key (default); 1 means sort by Description
     */
    sortLookupByDescription = 512,
    /**
     * ND01220 FAST default sort order (two bits) 0 == none; 1 == Relevance Ranking
     */
    searchSortOne = 1024,
    /**
     * 2 == Last Modified Date; 3 == Document Nam
     */
    searchSortTwo = 2048,
    /**
     * Flag determine if My Cabinet should be shown or not.
     */
    showMyCabinet = 8192,
    /**
     * Personalized sort option
     */
    searchSortPersonalized = 16384,
    /**
     *  Cannot use highest order bit - will be interpreted by eDir as negative number
     */
    mustNotUse = 2147483648,
}
/**
* Enumeration of flags that control membership model processing.
*/
export declare enum MembershipModelControlFlags {
    /**
    * No flag information has been specified.
    */
    Undefined = 0,
    /**
    * Flag that indicates that updated user information is requested.
    */
    IncludeUserInformation = 1,
    /**
    * Flag that indicates that updated repository information is requested.
    */
    IncludeRepositoryInformation = 2,
    /**
    * Flag that indicates that updated cabinet information is requested.
    */
    IncludeCabinetInformation = 4,
    /**
    * Flag that indicates that groups information is required.
    */
    IncludeGroupsInformation = 8,
    /**
    * Flag that indicates that the analytics configuration is required.
    */
    IncludeAnalyticsConfigurationForEachRepository = 16,
}
/**
* Enumeration of attributes for repositories, cabinets, etc.
* These attributes mirror the OptionalAttributes in ndCommon/Enumerations/OptionalAttr.cs.
*/
export declare enum OptionalAttributes {
    /**
    * No Flags
    */
    None = 0,
    /**
    * Fetches the document's checked out status.
    */
    AllowCheckedOutState = 2,
    /**
    * Fetches the check out details: who, when, comment
    */
    CheckedOutBy = 4,
    /**
    * Repository attributes (abbreviated dictionary: id, name, type, etc.)
    * See FullCustomAttributeDefinition for a full dictionary of each attribute.
    */
    CustomAttributes = 262144,
    /**
    * Primary cabinet and workspace attribute plural name
    */
    DefaultCabinet = 16777216,
    /**
    * Repository attributes (full dictionary)
    * See CustomAttributes for an abbreviated dictionary of each attribute.
    */
    FullCustomAttributeDefinition = 33554432,
    /**
    * Short name for FullCustromAttributeDefinition
    */
    FCAD = 33554432,
}
export declare enum UserOptLevel {
    User = 1,
}
/**
 * Enumeration of possible custom attribute types
 */
export declare enum CustomAttributeType {
    Text = 0,
    Numeric = 1,
    Date = 2,
    Note = 3,
}
export declare enum DefaultFromBehavior {
    None = 0,
    DefaultFrom = 1,
    DeterminedBy = 2,
    WorkspaceTemplate = 3,
}
/**
 * Enumeration of repository administrator types
 */
export declare enum RepositoryAdminType {
    NonAdmin = 0,
    FullAdmin = 1,
    LookupAdmin = 2,
    MembershipAdmin = 4,
    CabCreateAdmin = 8,
    DeviceAdmin = 16,
}
/**
 * Enumeration of cabinet administrator types
 */
export declare enum CabinetAdminType {
    NonAdmin = 0,
    FullAdmin = 1,
}
/**
 * Enumeration of user types
 */
export declare enum UserType {
    Internal = 0,
    External = 2,
}
/**
 * Primary cabinet model class
 */
export declare class PrimaryCabinetModel implements IPrimaryCabinetModel {
    CabinetGuid: string;
    constructor(cabinetGuid: string);
}
export declare class CabinetModel {
    cabinet: ICabinetData;
    repositoryGuid: string;
    constructor(cabinet: ICabinetData, repositoryGuid: string);
}
/**
 * Easy light weight Cabinet Name and Guid pair.
 */
export declare class CabinetNameAndGuid implements ICabinetNameAndGuid {
    /**
     * Represents Cabinet Name value.
     */
    Name: string;
    /**
     * Cabinet unique identifier.
     */
    Guid: string;
    constructor(name: string, guid: string);
}
export declare class Attribute implements IAttribute {
    /**
     * Represents identifier of attribute.
     */
    id: number;
    /**
     * Represents name for attribute.
     */
    name: string;
    /**
     * Constructor.
     * @param id attribute identifier.
     * @param name name of attribute.
     */
    constructor(id: StandardAttributes, name: string);
}
/**
 * ndOptions - Cabinet Option definitions (bitflags)
 * See ndOrg/dirCache/cabinetOption
 */
export declare enum CabinetOption {
    topFoldersAdminOnly = 1,
    autoFolder = 2,
    deleteAdminOnly = 4,
    noFulltextIndexing = 8,
    inheritACL = 16,
    forceEntry = 32,
    ndSyncDelete = 64,
    forceNewOnly = 128,
    restrictExtCreate = 256,
    workspaceEnabled = 512,
    editOldVersions = 1024,
    comparisonAttach = 2048,
    filingOptionBit1 = 4096,
    filingOptionBit2 = 8192,
    jumboFolders = 16384,
    noFilingInWorkspace = 32768,
    unauthPrinAccess = 65536,
    versionChgRights = 131072,
    archival = 262144,
    protectedCab = 524288,
    noExtUserNotify = 1048576,
    nbInheritLogo = 2097152,
    autoFilter = 4194304,
    deliverDoc = 8388608,
    noOnlineEditor = 16777216,
    notCopyLink = 33554432,
    revokeAdminOnly = 67108864,
    cabIsDisabled = 134217728,
    purgeImmediate = 268435456,
}
export declare class SortingInfo implements ISortingInfo {
    All: Array<ISorting>;
    Documents: Array<ISorting>;
    Email: Array<ISorting>;
}
export declare enum ErrorCodes {
    FileAccessDenied = 70,
    DocumentNotFound = 424,
    SharedDocumentIsGone = 0,
    DocumentContainsAvirus = 80040110,
    UnatachedPrincipalSessionAlreadyEstablished = 80078233,
    SpecificErrorWithMessage = 9999,
    FileNotFound = 53,
    NoWorkspaceAttribute = -2147467261,
}
/**
 * Favorite Document model class
 */
export declare class FavoriteDocumentModel implements IFavoriteDocumentModel {
    EnvId: string;
    IsFavorite: boolean;
    constructor(envld: string, isFavorite: boolean);
}
/**
 * Possible select parameters for the document model.
 * Some of these mimics enumerated values found in OptionalAttributes in OptionalAttr.cs
 */
export declare class SelectParameters {
    /**
     * Fetches the combined count of document and email attachments.
     */
    static AllowAttachmentCount: string;
    /**
     * Fetches the document's checked out status.
     */
    static AllowCheckedOutState: string;
    /**
     * Fetches the check out details: who, when, comment
     */
    static CheckedOutBy: string;
    /**
     * Fetch email to, from, cc, message id, attachment list, etc.
     */
    static EmailAttributes: string;
    /**
     * Fetches the envelope Access Control List (ACL).
     */
    static IncludeAcls: string;
    /**
     * Fetches whether the envelope has been deleted.
     */
    static DeletedStatus: string;
    /**
     * Fetches hoverover tip for folders.
     */
    static HoverTip: string;
    /**
     * Fetches workspace and/or custom attribute description information.
     */
    static Descriptions: string;
    /**
     * Fetches standard attributes (see <see cref="ndCommon.Models.DocumentModel.StandardAttributes"/>).
     */
    static StandardAttributes: string;
    /**
     * Fetches status attributes (see <see cref="ndCommon.Models.DocumentModel.StatusAttributes"/>).
     */
    static StatusAttributes: string;
    /**
     * Fetches whether the document is on the user's favorite list (home page, favorite workspaces)
     */
    static Favorite: string;
    /**
     * Fetches the document's hold status.
     */
    static Hold: string;
    /**
     * Fetches whether echoing is allowed at the caller's IP address.
     */
    static EchoAllowed: string;
    /**
     * Fetches document source information (see <see cref="ndCommon.Models.DocumentModel.SourceInformation"/>).
     */
    static Source: string;
    /**
     * Fetches document version information (see <see cref="ndCommon.Models.DocumentModel.Version"/>).
     */
    static Versions: string;
    /**
     * Fetches document version information (see <see cref="ndCommon.Models.DocumentModel.Version"/>).
     */
    static VersionsLite: string;
    /**
     * Fetch displayable names in version lists, ACLs, locations, etc.
     */
    static DisplayNames: string;
    /**
     * Fetches the Web Application Open Platform Interface (WOPI) source value used to open document in Office Online, Office for iOS, etc.
     */
    static WopiSrc: string;
    /**
     * Fetches the list of document attachments (not email attachments).
     */
    static DocAttachments: string;
    /**
     * Fetches custom attributes of documents (see <see cref="ndCommon.Models.DocumentModel.CustomAttribute"/>).
     */
    static CustomAttributes: string;
    /**
     * Fetches synchronization information (see <see cref="ndCommon.Models.DocumentModel.Synchronization"/>).
     */
    static Sync: string;
    /**
     * Fetches document location information (see <see cref="ndCommon.Models.DocumentModel.LocationsModel"/>).
     */
    static Locations: string;
    /**
     * Fetches fetches the displayable names in version lists, ACLs, locations, etc.
     */
    static DispNames: string;
    /**
     * Fetches container information (see <see cref="ndCommon.Models.DocumentModel.ContainerModel"/>).
     */
    static Containers: string;
    /**
     * Fetches document ancestor information (see <see cref="ndCommon.Models.DocumentModel.Ancestors"/>).
     */
    static Ancestors: string;
    /**
     * Fetches container specific document information (see <see cref="ndCommon.Models.DocumentModel.Container"/>).
     */
    static ContainerInfo: string;
    /**
     * Fetches the users default cabinet (see <see cref="ndCommon.Models.Membership.CabinetInformation.DefaultCabinet"/> and
     * work space plural name (see <see cref="ndCommon.Models.Membership.CabinetInformation.WorkSpacePluralName"/> information.
     */
    static DefaultCabinet: string;
    /**
     * Fetches the full custom attribute  (see <see cref="ndCommon.Models.DocumentModel.CustomAttribute"/>) rather than just the name, id, and type.
     */
    static FullCustomAttributeDefinition: string;
    /**
     * Fetches the Full Custom Attribute Definition (FCAD).
     */
    static FCAD: string;
    /**
     * Fetches updated repository information.
     */
    static IncludeRepositoryInformation: string;
    /**
     * Fetches updated cabinet information.
     */
    static IncludeCabinetInformation: string;
}
/**
 * Document type extensions constant
 */
export declare const DOCUMENT_TYPE_EXTENSIONS: {
    BitmapImage: string;
    ExcelSpreadsheet: string;
    ExcelSpreadsheet2: string;
    ExcelMacroEnabledSpreadsheet: string;
    ExcelBinarySpreadsheet: string;
    ExcelMacroEnabledSpreadsheetTemplate: string;
    ExtensibleMarkupLanguage: string;
    GraphicalInterchangeFormat: string;
    GroupWiseDatabaseShortcut: string;
    HypertextMarkupLanguage: string;
    HypertextMarkupLanguage2: string;
    InternetShortcut: string;
    JapaneseEncodedFile: string;
    JPEGImage: string;
    JPEGImage2: string;
    MicrosoftProject: string;
    MicrosoftWord: string;
    MicrosoftWord2: string;
    MIMEMailMessage: string;
    MIMEMailMessageAttachment: string;
    NetDocumentsCalendar: string;
    NetDocumentsDiscussion: string;
    NetDocumentsFolder: string;
    NetDocumentsFilter: string;
    NetDocumentsPaperDocument: string;
    NetDocumentsSavedSearch: string;
    NetDocumentsWorkspace: string;
    NetDocumentsShareSpace: string;
    NetDocumentsCollaborationSpace: string;
    OutlookMailMessage: string;
    OutlookMailMessageAttachment: string;
    PaperPortScannedImage: string;
    PlainText: string;
    PortableDocumentFormat: string;
    PortableDocumentFormatA: string;
    PortableNetworkGraphic: string;
    PowerPointPresentation: string;
    PowerPointPresentation2: string;
    PowerPointSlideShow: string;
    RichText: string;
    ScanSoftPagis: string;
    TaggedImageFile: string;
    TaggedImageFileFormat: string;
    VisioDrawing: string;
    VisioDrawing2: string;
    WordOpenMacroEnabled: string;
    WordPerfect: string;
};
export declare const DocumentExtensions: Map<string, string>;
/**
 * Enumeration that defines the attachment type.
 */
export declare enum AttachmentType {
    /**
     * The attachment type is undefined.
     */
    Undefined = 0,
    /**
     * The attachment is associated with an email.
     */
    Email = 1,
    /**
     * The attachment is associated with a document.
     */
    Document = 2,
    /**
     * The attachment is associated with a version
     */
    Version = 3,
}
/**
 * Class define well kow tree node types.
 */
export declare class TreeNodeType {
    /**
     * The tree node represents a repository.
     */
    static repository: string;
    /**
     * The tree node represents a cabinet.
     */
    static cabinet: string;
    /**
     * The tree node represents a recent workspace.
     */
    static wsRecent: string;
    /**
     * The tree represents a favorite workspace.
     */
    static wsFavorite: string;
    /**
     * The tree node represents a workspace.
     */
    static workspace: string;
    /**
     * The tree node represents a top level folder.
     */
    static topFolders: string;
    /**
     * The tree node represents a folder.
     */
    static folder: string;
    /**
     * The tree node represents CollaborationSpace.
     */
    static collaborationSpace: string;
}
/**
 * Class defines a custom attribute value.
 */
export declare class CustomAttribute implements ICustomAttribute {
    /**
     * Custom attribute Id. ie: 1001, 1002, 1003, etc...
     */
    Id: number;
    /**
     * Custom attribute values.  This is the key value.  Array item 0 is default.
     */
    Value?: Array<string>;
    /**
     * Descriptions corresponding to the values in Value or NumberValue.
     */
    Description?: Array<string>;
    /**
     * Flag that tells us whether this value is a date or not (client side)
     */
    Date?: boolean;
}
/**
 * Implements document attribute
 */
export declare class DocumentAttribute implements IDocumentAttribute {
    code: string;
    description: string;
    constructor(code?: string, description?: string);
}
/**
 * Implements workspace base (and link) attribute(s)
 */
export declare class WorkspaceAttributes implements IWorkspaceAttributes {
    baseAttribute: IDocumentAttribute;
    linkAttribute: IDocumentAttribute;
    constructor(baseAttribute?: IDocumentAttribute, linkAttribute?: IDocumentAttribute);
}
/** The options the user can set via API.   */
export declare class UserOption {
    static ListviewLayout: string;
    static PrimaryCabinet: string;
    static NavPanePinned: string;
    static PowerbarLayout: string;
}
export declare enum ItemType {
    SD = 0,
    PF = 1,
    WS = 2,
    NB = 3,
    CS = 4,
}
