import { DomElement } from '../model/DomElement';
import { NavPane } from '../model/NavPane';
import { SPC } from '../model/SPC';
/**
 * 'InputMessage' class model
 */
export declare class InputMessage {
    /**
    * Public class constants
    */
    static readonly EXCEPTION_ID_6500001100_MESSAGE_VALUE = "Another filter selector object has the same signature";
    static readonly EXCEPTION_ID_6500001200_MESSAGE_VALUE = "A 'Paginator' has already been set";
    static readonly EXCEPTION_ID_6500005100_MESSAGE_VALUE = "Invalid domain value";
    /**
     * Private class constants
     */
    private readonly DEFAULT_INSTANCE_TIMEOUT_VALUE;
    private readonly DOM_VALIDATION_NAVPANE_MIN_OCCURS_VALUE;
    private readonly ID_GENERATED_FLOOR_FUNC_COMPLEXITY_VALUE;
    private readonly REGEX_FS_URI_VALIDATION_VALUE;
    /**
     * Class properties
     */
    private _domain;
    private _doms;
    private _fs;
    private _id;
    private _navpane;
    private _pagepath;
    private _timeout;
    /**
     * Constructor
     *
     * @param domain Defines the 'URI' domain
     * @param pagepath Contains the 'URI' path
     * @param timeout Optional parameter that defines the timeout value
     *
     */
    constructor(domain: string, pagepath: string, timeout?: number);
    /**
     * Validates if the domain is only locally based (filesytem) or from the network. If the domain is under an URL format
     * then the private filesystem property is set to 'false'
     *
     * @param domain Input 'string' parameter that contains the domain value
     * @returns A 'string' formatted value that contains the passed parameter
     */
    private _domainValidator;
    /**
     * Validates the content of the '_doms' class property
     *
     *  - 'SPC' class instance, verifies that is no other instance(s) having the same 'filter selector'
     *  - 'NavPane' ('Paginator') class instance, verifies that there is not more than one instance within the stack
     *
     * @param Class Parameter that contains the class name to validate
     */
    private domsValidate;
    /**
     * Getter 'ID' number property
     *
     * @return Returns the '_id' class property
     */
    get ID(): number;
    /**
     * Getter 'doms' array property
     *
     * @return Returns the '_doms' class property
     */
    get doms(): DomElement[] | NavPane[] | SPC[];
    /**
     * Getter 'hasNavpane' ('Paginator') boolean property
     *
     * @return Returns the '_navpane' class property
     */
    get hasNavpane(): boolean;
    /**
     * Getter 'domain' string property
     *
     * @return Returns the '_domain' class property
     */
    get domain(): string;
    /**
     * Getter 'pagePath' string property
     *
     * @return Returns the '_pagepath' class property
     */
    get pagepath(): string;
    /**
     * Getter 'filesystem' boolean property
     *
     * @return Returns the '_filesystem' class property
     */
    get filesystem(): boolean;
    /**
     * Getter 'timeout' number property
     *
     * @return Returns the current class timeout value
     */
    get timeout(): number;
    /**
     * Returns 'URI/URL' string properties ('_domain' + '_pagePath')
     *
     * @return Returns the complete 'URI' ('_domain' + '_pagePath')
     */
    get URI(): string;
    /**
     * Returns the 'DOM' element(s) list under JSON format
     *
     * @return Returns all the 'DOM' element(s) contained within the '_dom' class property
     */
    getDomsEntries(): string;
    /**
     * Returns the 'DOM' element(s) list under JSON format
     *
     * @return Returns all the 'DOM' element(s) contained within the '_dom' class property
     */
    getDomsEntriesToJSON(): string[];
    /**
     * 'Stringify' the object properties
     *
     * @return Returns a string that shows up all all the class properties
     */
    get toString(): string;
    /**
     * 'Stringify' the `InputMessage` class instance
     *
     * TODO : invoke the inner mapper
     */
    static toJSON(instance: InputMessage): string;
    /**
     * Returns a JavaScript Object Notation (JSON) string into an object
     *
     * TODO : invoke the inner mapper in order to send back a plain 'InputMessage' class instance
     *
     * @param inJson
     * @returns
     */
    static fromJSON(inJson: string): any;
    /**
     * Set the '_navpane' property value
     *
     * @param flag Contains the boolean value that sets the '_navpane' class property
     */
    set navPane(flag: boolean);
    /**
     * Returns the newly added 'NavPane' element [deprecated]
     *
     * @deprecated this method is now deprecated, please use 'addPaginator()' method instead
     *
     * @param filterSelector Defines the 'NavPane' filter selector
     * @param attrib Contains the attrib(ute) of the element/tag (i.e : 'href')
     * @returns Returns the 'NavPane' class instance itself
     */
    addNavPane(filterSelector: string, attrib: string): number;
    /**
     * Adds a Paginator and returns the newly added 'NavPane' element
     *
     * Note : For the sake of good reading and interpretation, this function has been publicly renamed ('addNavPane()')
     *
     * @param filterSelector Defines the 'Paginator' filter selector
     * @param attrib Contains the attrib(ute) of the element/tag (i.e : 'href')
     * @returns Returns the 'Paginator' ('NavPane') class instance itself
     */
    addPaginator(filterSelector: string, attrib: string): number;
    /**
     * Returns the newly added 'SPC' type element [deprecated]
     *
     * TODO : (new SPC(filterSelector, new Array<Sibling>())).validate() : returns SPC (this)
     *
     * @deprecated this method is now deprecated, please use 'addFilterSelector()' method instead
     *
     * @param filterselector Contains the current class filter selector
     * @returns Returns the 'SPC' class instance itself
     */
    addSPC(filterSelector: string): SPC;
    /**
     * Returns the newly added Filter Selector ('SPC' type element)
     *
     * Note : For the sake of good reading and interpretation, this function has been publicly renamed ('addSPC()')
     *
     * TODO : Implement validate() as (new SPC(filterSelector, new Array<Sibling>())).validate() : returns SPC (this)
     *
     * @param filterselector Contains the current class filter selector
     * @returns Returns the 'Filter Selector' ('SPC') class instance itself
     */
    addFilterSelector(filterSelector: string): SPC;
    /**
     * Returns all the inherited 'DOMElement' instance(s) from the '_doms' stack property that match the 'Class' parameter
     *
     * NOTE : The returned value in case of 'navpane'/'paginator' should always be 1 element
     *
     * @param Class Contains the class name to retrieve
     * @return Returns an array of 'DomElement' that contains the found occurrence(s)
     */
    findDOMElement(Class: any): DomElement[];
}
//# sourceMappingURL=InputMessage.d.ts.map