export type MWPages = MWPage[];
export interface MWPage {
    pageid: number;
    ns: number;
    title: string;
    extract: string;
    contentmodel: string;
    pagelanguage: string;
    pagelanguagehtmlcode: string;
    pagelanguagedir: string;
    touched: string;
    lastrevid: number;
    length: number;
    fullurl: string;
    editurl: string;
    canonicalurl: string;
    displaytitle: string;
    special?: boolean;
    invalid?: boolean;
    invalidreason?: string;
    missing?: boolean;
}
export type MWRedirects = MWRedirect[];
export interface MWRedirect {
    from: string;
    to: string;
    tofragment?: string;
}
export type MWInterwikiLinks = MWInterwiki[];
export interface MWInterwiki {
    title: string;
    iw: string;
    url: string;
}
export type MWSpecialPageAliases = MWSpecialPageAlias[];
export interface MWSpecialPageAlias {
    realname: string;
    aliases: string[];
}
export type MWNamespaceAliases = MWNamespaceAlias[];
export interface MWNamespaceAlias {
    id: number;
    alias: string;
}
export type MWNamespaces = Record<string, MWNamespace>;
export interface MWNamespace {
    id: number;
    case: string;
    name: string;
    subpages: boolean;
    canonical: string;
    content: boolean;
    nonincludable: boolean;
}
export interface MWApiResponseQueryPagesWithSiteinfo {
    query: {
        pages: MWPages;
        redirects?: MWRedirects;
        interwiki?: MWInterwikiLinks;
        specialpagealiases: MWSpecialPageAliases;
        namespacealiases: MWNamespaceAliases;
        namespaces: MWNamespaces;
    };
}
export interface MWApiResponsQueryPagesGeneratedBySearch {
    query: {
        searchinfo: {
            totalhits: number;
        };
        pages: {
            pageid: number;
            ns: number;
            title: string;
            index: number;
            extract: string;
        }[];
        search: {
            ns: number;
            title: string;
            pageid: number;
        }[];
    };
}
