import type { Mwn } from './bot';
import type { MwnTitle } from './title';
import type { MwnPage } from './page';
import type { ApiQueryCategoryMembersParams } from 'types-mediawiki-api';
type ApiPageInfo = {
    pageid: number;
    ns: number;
    title: string;
};
export interface MwnCategoryStatic {
    /**
     * @param {string} name - name of the category
     */
    new (name: MwnTitle | string): MwnCategory;
}
export interface MwnCategory extends MwnPage {
    /**
     * Get all members in the category - this includes subcategories, pages and files
     * @param {Object} options - additional API parameters
     * @returns {Promise<Object[]>} - Resolved with array of objects of form
     * { pageid: 324234, ns: 0, title: 'Main Page' }
     */
    members(options?: ApiQueryCategoryMembersParams): Promise<ApiPageInfo[]>;
    membersGen(options?: ApiQueryCategoryMembersParams): AsyncGenerator<ApiPageInfo>;
    /**
     * Get all pages in the category - does not include subcategories or files
     * @param {Object} options - additional API parameters
     * @returns {Promise<Object[]>} - Resolved with array of objects of form
     * { pageid: 324234, ns: 0, title: 'Main Page' }
     */
    pages(options?: ApiQueryCategoryMembersParams): Promise<ApiPageInfo[]>;
    /**
     * Get all subcategories of the category
     * @param {Object} options - additional API parameters
     * @returns {Promise<Object[]>} - Resolved with array of objects of form
     * { pageid: 324234, ns: 14, title: 'Category:Living people' }
     */
    subcats(options?: ApiQueryCategoryMembersParams): Promise<ApiPageInfo[]>;
    /**
     * Get all files in the category
     * @param {Object} options - additional API parameters
     * @returns {Promise<Object[]>} - Resolved with array of objects of form
     * { pageid: 324234, ns: 6, title: 'File:Image.jpg' }
     */
    files(options?: ApiQueryCategoryMembersParams): Promise<ApiPageInfo[]>;
}
export default function (bot: Mwn): MwnCategoryStatic;
export {};
