import Downloader from './Downloader.js';
import BaseURLDirector from './util/builders/url/base.director.js';
import WikimediaDesktopURLDirector from './util/builders/url/desktop.director.js';
import WikimediaMobileURLDirector from './util/builders/url/mobile.director.js';
import VisualEditorURLDirector from './util/builders/url/visual-editor.director.js';
import RestApiURLDirector from './util/builders/url/rest-api.director.js';
export interface QueryOpts {
    action: string;
    format: string;
    prop: string;
    rdlimit: string;
    rdnamespace: string | number;
    redirects?: boolean;
    formatversion: string;
}
declare class MediaWiki {
    #private;
    private static instance;
    static getInstance(): MediaWiki;
    metaData: MWMetaData;
    baseUrl: URL;
    getCategories: boolean;
    namespaces: MWNamespaces;
    namespacesToMirror: string[];
    apiCheckArticleId: string;
    queryOpts: QueryOpts;
    urlDirector: BaseURLDirector;
    wikimediaDesktopUrlDirector: WikimediaDesktopURLDirector;
    wikimediaMobileUrlDirector: WikimediaMobileURLDirector;
    visualEditorUrlDirector: VisualEditorURLDirector;
    restApiUrlDirector: RestApiURLDirector;
    visualEditorApiUrl: URL;
    actionApiUrl: URL;
    restApiUrl: URL;
    webUrl: URL;
    wikimediaDesktopApiUrl: URL;
    wikimediaMobileApiUrl: URL;
    modulePath: string;
    mobileModulePath: string;
    set username(value: string);
    set password(value: string);
    set actionApiPath(value: string);
    set restApiPath(value: string);
    set domain(value: string);
    set wikiPath(value: string);
    set base(value: string);
    set modulePathOpt(value: string);
    private initializeMediaWikiDefaults;
    private constructor();
    hasWikimediaDesktopApi(downloader: Downloader): Promise<boolean>;
    hasWikimediaMobileApi(downloader: Downloader): Promise<boolean>;
    hasVisualEditorApi(downloader: Downloader): Promise<boolean>;
    hasRestApi(downloader: Downloader): Promise<boolean>;
    hasCoordinates(downloader: Downloader): Promise<boolean>;
    private setWikimediaDesktopApiUrl;
    private setWikimediaMobileApiUrl;
    private setRestApiURL;
    private setVisualEditorURL;
    private setModuleURL;
    private setMobileModuleUrl;
    login(downloader: Downloader): Promise<void>;
    getNamespaces(addNamespaces: number[], downloader: Downloader): Promise<void>;
    extractPageTitleFromHref(href: any): any;
    getCreatorName(): string;
    getTextDirection(downloader: Downloader): Promise<TextDirection>;
    getSiteInfo(downloader: Downloader): Promise<{
        mainPage: any;
        siteName: any;
        langIso2: any;
        langIso3: any;
    }>;
    getSubTitle(downloader: Downloader): Promise<string>;
    getMwMetaData(downloader: Downloader): Promise<MWMetaData>;
    reset(): void;
}
declare const _default: MediaWiki;
export default _default;
