import { AuthType } from "../enums/AuthType";
import { ConnectionType } from "../enums/ConnectionType";

export declare class IMAPAsyncSessionNativeBinding {
    get hostname(): string;
    set hostname(hostname: string);
    get port(): number;
    set port(port: number);
    get username(): string;
    set username(username: string);
    get password(): string;
    set password(password: string);
    get checkCertificateEnabled(): boolean;
    set checkCertificateEnabled(isEnabled: boolean);
    get OAuth2Token(): string;
    set OAuth2Token(OAuth2Token: string);
    get authType(): AuthType;
    set authType(authType: AuthType);
    get connectionType(): ConnectionType;
    set connectionType(connectionType: ConnectionType);
    set strictGost(value: Boolean);
    get strictGost(): Boolean;
    checkAccount(from: string): Promise<number>;
    disconnect(): void;
    isDisconnected(): boolean;
    fetchAllFolders(): any;
}

export declare interface IMAPAsyncSessionNativeBindingObject {
    new (): IMAPAsyncSessionNativeBinding
    strError(errorCode: number): string
}
