import { EventEmitter } from '../../stencil-public-runtime';
import { EzpAuthorizationService } from '../../services/auth';
import { ThemeTypes, AppearanceTypes, TriggerTypes, SystemAppearanceTypes } from './../../shared/types';
export declare class EzpPrinting {
    auth: EzpAuthorizationService;
    clientid: string;
    redirecturi: string;
    filename: string;
    fileurl: string;
    filetype: string;
    custom: boolean;
    hidelogin: boolean;
    hidemenu: boolean;
    hideheader: boolean;
    authapihosturl: string;
    printapihosturl: string;
    theme: ThemeTypes;
    fileid: string;
    appearance: AppearanceTypes;
    trigger: TriggerTypes;
    language: string;
    code: string;
    filedata: string;
    seamless: boolean;
    /**
     *
     * States
     *
     */
    /** Description... */
    printOpen: boolean;
    authOpen: boolean;
    onlyGetSasUri: boolean;
    noDocumentOpen: boolean;
    systemAppearance: SystemAppearanceTypes;
    files: File[];
    /** Watchers */
    watchFileData(newValue: string, oldValue: string): void;
    watchFilename(newValue: string, oldValue: string): void;
    watchFileUrl(newValue: string, oldValue: string): void;
    watchLanguage(newValue: string, oldValue: string): void;
    /**
     *
     * Listeners
     *
     */
    /** Description... */
    listenPrintCancel(): void;
    /** Description... */
    listenPrintSubmit(): void;
    /** Description... */
    listenAuthCancel(): void;
    listenUserCancel(): void;
    listenAuthSuccess(): void;
    listenUploadFile(event: CustomEvent): void;
    listenDialogClose(event: CustomEvent): void;
    listenDialogAction(event: CustomEvent): void;
    listenLogout(): void;
    /**
     * Events
     */
    printFinished: EventEmitter<any>;
    /**
     *
     * Public methods
     *
     */
    open(): Promise<void>;
    logOut(): Promise<void>;
    getSasUri(): Promise<string>;
    getAuthUri(): Promise<string>;
    setAuthRefreshToken(refreshToken: string): Promise<void>;
    checkAuth(): Promise<boolean>;
    /**
     * Normalizes a URL or hostname to just the hostname without protocol
     * Accepts both "hostname" and "https://hostname" formats
     */
    private normalizeHostUrl;
    refreshTokensPeriodically(seconds: number): void;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): void;
    /**
     *
     * Render method
     *
     */
    render(): any;
}
