import { ForumTopicsCategoryFiltersEnum, ForumTopicsQuickDateEnum, ForumTopicsSortEnum, ITokens, APIResponse, PostSearchResponse, ForumPostSortEnum, TagResponse, ForumRecruitmentDetail } from "../../types";
export declare class Forum {
    private url;
    private headers;
    constructor(url: string, headers: Record<string, string>);
    /**
     * Get topics from any forum.
     * @param categoryFilter A category filter
     * @param group The group, if any.
     * @param locales Comma seperated list of locales posts must match to return in the result list. Default 'en'
     * @param page Zero paged page number
     * @param pageSize Unused
     * @param quickDate A date filter.
     * @param sort The sort mode.
     * @param tagstring The tags to search, if any.
     * @returns Get topics from any forum.
     */
    GetTopicsPaged(categoryFilter: ForumTopicsCategoryFiltersEnum, group: string, page: number, pageSize: number, quickDate: ForumTopicsQuickDateEnum, sort: ForumTopicsSortEnum, queryString: {
        locales?: string;
        tagstring?: string;
    } | null, tokens?: ITokens): Promise<APIResponse<PostSearchResponse>>;
    /**
     * Gets a listing of all topics marked as part of the core group.
     * @param categoryFilter The category filter.
     * @param locales Comma seperated list of locales posts must match to return in the result list. Default 'en'
     * @param page Zero base page
     * @param quickDate The date filter.
     * @param sort The sort mode.
     * @returns Gets a listing of all topics marked as part of the core group.
     */
    GetCoreTopicsPaged(categoryFilter: ForumTopicsCategoryFiltersEnum, page: number, quickDate: ForumTopicsQuickDateEnum, sort: ForumTopicsSortEnum, queryString: {
        locales?: string;
    } | null, tokens?: ITokens): Promise<APIResponse<PostSearchResponse>>;
    /**
     * Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.
     * @param getParentPost
     * @param page
     * @param pageSize
     * @param parentPostId
     * @param replySize
     * @param rootThreadMode
     * @param showbanned If this value is not null or empty, banned posts are requested to be returned
     * @param sortMode
     * @returns Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.
     */
    GetPostsThreadedPaged(getParentPost: boolean, page: number, pageSize: number, parentPostId: string, replySize: number, rootThreadMode: boolean, sortMode: ForumPostSortEnum, queryString: {
        showbanned?: string;
    } | null, tokens?: ITokens): Promise<APIResponse<PostSearchResponse>>;
    /**
     * Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.
     * @param childPostId
     * @param page
     * @param pageSize
     * @param replySize
     * @param rootThreadMode
     * @param showbanned If this value is not null or empty, banned posts are requested to be returned
     * @param sortMode
     * @returns Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.
     */
    GetPostsThreadedPagedFromChild(childPostId: string, page: number, pageSize: number, replySize: number, rootThreadMode: boolean, sortMode: ForumPostSortEnum, queryString: {
        showbanned?: string;
    } | null, tokens?: ITokens): Promise<APIResponse<PostSearchResponse>>;
    /**
     * Returns the post specified and its immediate parent.
     * @param childPostId
     * @param showbanned If this value is not null or empty, banned posts are requested to be returned
     * @returns Returns the post specified and its immediate parent.
     */
    GetPostAndParent(childPostId: string, queryString: {
        showbanned?: string;
    } | null, tokens?: ITokens): Promise<APIResponse<PostSearchResponse>>;
    /**
     * Returns the post specified and its immediate parent of posts that are awaiting approval.
     * @param childPostId
     * @param showbanned If this value is not null or empty, banned posts are requested to be returned
     * @returns Returns the post specified and its immediate parent of posts that are awaiting approval.
     */
    GetPostAndParentAwaitingApproval(childPostId: string, queryString: {
        showbanned?: string;
    } | null, tokens?: ITokens): Promise<APIResponse<PostSearchResponse>>;
    /**
     * Gets the post Id for the given content item's comments, if it exists.
     * @param contentId
     * @returns Gets the post Id for the given content item's comments, if it exists.
     */
    GetTopicForContent(contentId: string, tokens?: ITokens): Promise<APIResponse<string>>;
    /**
     * Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.
     * @param partialtag The partial tag input to generate suggestions from.
     * @returns Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.
     */
    GetForumTagSuggestions(queryString: {
        partialtag?: string;
    } | null, tokens?: ITokens): Promise<APIResponse<TagResponse[]>>;
    /**
     * Gets the specified forum poll.
     * @param topicId The post id of the topic that has the poll.
     * @returns Gets the specified forum poll.
     */
    GetPoll(topicId: string, tokens?: ITokens): Promise<APIResponse<PostSearchResponse>>;
    /**
     * Allows the caller to get a list of to 25 recruitment thread summary information objects.
     
      * @returns Allows the caller to get a list of to 25 recruitment thread summary information objects.
     */
    GetRecruitmentThreadSummaries(tokens?: ITokens): Promise<APIResponse<ForumRecruitmentDetail[]>>;
}
