import { Evented } from '../util/evented';
declare const status: {
    unavailable: string;
    deferred: string;
    loading: string;
    loaded: string;
    error: string;
};
export declare type PluginState = {
    pluginStatus: typeof status[keyof typeof status];
    pluginURL: string | undefined | null;
};
declare type ErrorCallback = (error?: Error | null) => void;
declare type PluginStateSyncCallback = (state: PluginState) => void;
export declare const triggerPluginCompletionEvent: (error: Error | string | undefined | null) => void;
export declare const evented: Evented;
export declare const getRTLTextPluginStatus: () => string;
export declare const registerForPluginStateChange: (callback: PluginStateSyncCallback) => PluginStateSyncCallback;
export declare const clearRTLTextPlugin: () => void;
export declare const setRTLTextPlugin: (url: string, callback: ErrorCallback | undefined | null, deferred?: boolean) => void;
export declare const downloadRTLTextPlugin: () => void;
export declare const plugin: {
    applyArabicShaping: Function | undefined | null;
    processBidirectionalText: ((b: string, a: Array<number>) => Array<string>) | undefined | null;
    processStyledBidirectionalText: ((c: string, b: Array<number>, a: Array<number>) => Array<[string, Array<number>]>) | undefined | null;
    isLoaded: () => boolean;
    isLoading: () => boolean;
    setState: (state: PluginState) => void;
    isParsed: () => boolean;
    getPluginURL: () => string | undefined | null;
};
export declare const lazyLoadRTLTextPlugin: () => void;
export {};
//# sourceMappingURL=rtl_text_plugin.d.ts.map