/// <reference types="node" />
import { EventEmitter } from 'events';
import { EduRoleTypeEnum, EduTextMessage } from 'agora-rte-sdk';
import { Room } from 'white-web-sdk';
export declare function getOSSUrl(mediaUrl: string): string;
export interface OSSConfig {
    accessKeyId: string;
    accessKeySecret: string;
    endpoint: string;
    bucket: string;
    folder: string;
}
export interface UserAttrs {
    uid: string;
    account: string;
    role: string;
    audio: number;
    video: number;
    chat: number;
    whiteboard_uid?: string;
    link_uid?: number;
    shared_uid?: number;
    mute_chat?: number;
    class_state?: number;
}
export declare const resolveFileInfo: (file: any) => {
    fileName: string;
    fileType: string;
};
export declare function NetworkQualityEvaluation(evt: {
    downlinkNetworkQuality: number;
    uplinkNetworkQuality: number;
}): string;
export declare function CustomBtoa(input: any): string;
export declare type AppStorage = Storage | MemoryStorage;
export declare class MemoryStorage {
    private readonly _storage;
    constructor(_storage?: Map<string, string>);
    getItem(name: string): string | undefined;
    setItem(name: string, value: string): void;
    removeItem(name: string): void;
}
export declare class CustomStorage {
    private storage;
    languageKey: string;
    constructor();
    useSessionStorage(): void;
    read(key: string): any;
    save(key: string, val: any): void;
    clear(key: string): void;
    setLanguage(lang: string): void;
    getLanguage(): any;
    getRtmMessage(): {
        count: any;
        messages: any[];
    };
}
export declare class PersistLocalStorage {
    private storage;
    languageKey: string;
    constructor();
    saveCourseWareList(jsonStringify: string): void;
    getCourseWareSaveList(): never[];
}
export declare const GlobalStorage: CustomStorage;
export declare const storage: PersistLocalStorage;
export declare const debounce: (foo: any, t: number) => () => void;
export declare type BaseImageSize = {
    width: number;
    height: number;
};
export declare type NetlessImageFile = {
    uuid: string;
    width: number;
    height: number;
    file: File;
    url: string;
    coordinateX: number;
    coordinateY: number;
};
export declare const getImageSize: (imageInnerSize: BaseImageSize) => BaseImageSize;
export declare type FetchImageResult = {
    width: number;
    height: number;
    file: File;
    uuid: string;
    url: string;
};
export declare const fetchNetlessImageByUrl: (url: string) => Promise<FetchImageResult>;
export declare const netlessInsertImageOperation: (room: Room, imageFile: NetlessImageFile) => Promise<void>;
export declare type NetlessMediaFile = {
    url: string;
    originX: number;
    originY: number;
    width: number;
    height: number;
};
export declare const netlessInsertVideoOperation: (room: Room, file: NetlessMediaFile, mimeType: string) => void;
export declare const netlessInsertAudioOperation: (room: Room, file: NetlessMediaFile, mimeType: string) => void;
export declare const getStorage: (label: string) => any;
export declare const getDeviceLabelFromStorage: (type: string) => any;
export declare const showOriginText: (userRole: EduRoleTypeEnum, messageFromRole: string) => boolean;
export declare const showMaskText: (text: string, sensitiveWords: string[]) => string;
export declare const filterChatText: (userRole: EduRoleTypeEnum, message: EduTextMessage) => string;
export declare type BytesType = number | string;
export declare const fileSizeConversionUnit: (fileBytes: BytesType, decimalPoint?: number | undefined) => string;
export declare class BizLogger {
    static enable: boolean;
    private static get currentTime();
    static setLogLevel(enabled: boolean): void;
    static warn(...args: any[]): void;
    static debug(...args: any[]): void;
    static info(...args: any[]): void;
    static error(...args: any[]): void;
    private static log;
}
export declare const isElectron: boolean;
export declare const platform: string;
export declare const registerWorker: (workerPath: string) => void;
export declare const useStorageSWContext: (workerPath?: string) => void;
export declare class ZoomController extends EventEmitter {
    private static readonly syncDuration;
    private static readonly dividingRule;
    private tempRuleIndex?;
    private syncRuleIndexTimer;
    private zoomScale;
    constructor(zoomScale?: number);
    private delaySyncRuleIndex;
    private static readRuleIndexByScale;
    protected moveRuleIndex(deltaIndex: number, scale: number): number;
}
export declare const transLineTool: Record<any, any>;
export declare const transToolBar: Record<any, any>;
export declare const mapToolBar: any;
