import { TwirpContext, TwirpServer } from 'twirp-ts';
import { AboutWhereRequest, BasicSubredditRequest, DeleteSrImgRequest, BasicSearchRequest, SearchRedditNamesResponse, SearchSubredditsResponse, SiteAdminRequest, SubmitTextResponse, SubredditAutocompleteRequest, SubredditAutocompleteResponse, SubredditStylesheetRequest, SubscribeRequest, UploadSrImgRequest, UploadSrImgResponse, SubredditPostRequirementsResponse, SubredditAboutResponse, SubredditAboutEditRequest, SubredditAboutEditResponse, SubredditAboutRulesResponse, SubredditAboutTrafficResponse, StickyRequest, StickyResponse, BasicWhereRequest, SubredditsSearchRequest, SubredditsSearchResponse, UsersSearchRequest, UserSearchResponse, SubredditAddRemovalReasonRequest, SubredditAddRemovalReasonResponse, SubredditGetRemovalReasonsRequest, SubredditGetRemovalReasonsResponse, GetHighlightedPostsRequest, GetHighlightedPostsResponse, ReorderHighlightedPostsRequest, ReorderHighlightedPostsResponse } from './subreddits_msg.js';
import { Listing, JsonStatus } from '../common/common_msg.js';
import { Empty } from '../../../../google/protobuf/empty.js';
import { StringValue } from '../../../../google/protobuf/wrappers.js';
export interface SubredditsTwirp<T extends TwirpContext = TwirpContext> {
    AboutWhere(ctx: T, request: AboutWhereRequest): Promise<Listing>;
    DeleteSrBanner(ctx: T, request: BasicSubredditRequest): Promise<JsonStatus>;
    DeleteSrHeader(ctx: T, request: BasicSubredditRequest): Promise<JsonStatus>;
    DeleteSrIcon(ctx: T, request: BasicSubredditRequest): Promise<JsonStatus>;
    DeleteSrImg(ctx: T, request: DeleteSrImgRequest): Promise<JsonStatus>;
    SearchRedditNames(ctx: T, request: BasicSearchRequest): Promise<SearchRedditNamesResponse>;
    SearchSubreddits(ctx: T, request: BasicSearchRequest): Promise<SearchSubredditsResponse>;
    SiteAdmin(ctx: T, request: SiteAdminRequest): Promise<JsonStatus>;
    SubmitText(ctx: T, request: BasicSubredditRequest): Promise<SubmitTextResponse>;
    SubredditAutocomplete(ctx: T, request: SubredditAutocompleteRequest): Promise<SubredditAutocompleteResponse>;
    SubredditStylesheet(ctx: T, request: SubredditStylesheetRequest): Promise<JsonStatus>;
    Subscribe(ctx: T, request: SubscribeRequest): Promise<Empty>;
    UploadSrImg(ctx: T, request: UploadSrImgRequest): Promise<UploadSrImgResponse>;
    SubredditPostRequirements(ctx: T, request: BasicSubredditRequest): Promise<SubredditPostRequirementsResponse>;
    SubredditAbout(ctx: T, request: BasicSubredditRequest): Promise<SubredditAboutResponse>;
    SubredditAboutEdit(ctx: T, request: SubredditAboutEditRequest): Promise<SubredditAboutEditResponse>;
    SubredditAboutRules(ctx: T, request: BasicSubredditRequest): Promise<SubredditAboutRulesResponse>;
    SubredditAboutTraffic(ctx: T, request: BasicSubredditRequest): Promise<SubredditAboutTrafficResponse>;
    Sidebar(ctx: T, request: BasicSubredditRequest): Promise<StringValue>;
    Sticky(ctx: T, request: StickyRequest): Promise<StickyResponse>;
    SubredditsMineWhere(ctx: T, request: BasicWhereRequest): Promise<Listing>;
    SubredditsSearch(ctx: T, request: SubredditsSearchRequest): Promise<SubredditsSearchResponse>;
    SubredditsWhere(ctx: T, request: BasicWhereRequest): Promise<SubredditsSearchResponse>;
    UsersSearch(ctx: T, request: UsersSearchRequest): Promise<UserSearchResponse>;
    UsersWhere(ctx: T, request: BasicWhereRequest): Promise<SubredditsSearchResponse>;
    SubredditAddRemovalReason(ctx: T, request: SubredditAddRemovalReasonRequest): Promise<SubredditAddRemovalReasonResponse>;
    SubredditGetRemovalReasons(ctx: T, request: SubredditGetRemovalReasonsRequest): Promise<SubredditGetRemovalReasonsResponse>;
    GetHighlightedPosts(ctx: T, request: GetHighlightedPostsRequest): Promise<GetHighlightedPostsResponse>;
    ReorderHighlightedPosts(ctx: T, request: ReorderHighlightedPostsRequest): Promise<ReorderHighlightedPostsResponse>;
}
export declare enum SubredditsMethod {
    AboutWhere = "AboutWhere",
    DeleteSrBanner = "DeleteSrBanner",
    DeleteSrHeader = "DeleteSrHeader",
    DeleteSrIcon = "DeleteSrIcon",
    DeleteSrImg = "DeleteSrImg",
    SearchRedditNames = "SearchRedditNames",
    SearchSubreddits = "SearchSubreddits",
    SiteAdmin = "SiteAdmin",
    SubmitText = "SubmitText",
    SubredditAutocomplete = "SubredditAutocomplete",
    SubredditStylesheet = "SubredditStylesheet",
    Subscribe = "Subscribe",
    UploadSrImg = "UploadSrImg",
    SubredditPostRequirements = "SubredditPostRequirements",
    SubredditAbout = "SubredditAbout",
    SubredditAboutEdit = "SubredditAboutEdit",
    SubredditAboutRules = "SubredditAboutRules",
    SubredditAboutTraffic = "SubredditAboutTraffic",
    Sidebar = "Sidebar",
    Sticky = "Sticky",
    SubredditsMineWhere = "SubredditsMineWhere",
    SubredditsSearch = "SubredditsSearch",
    SubredditsWhere = "SubredditsWhere",
    UsersSearch = "UsersSearch",
    UsersWhere = "UsersWhere",
    SubredditAddRemovalReason = "SubredditAddRemovalReason",
    SubredditGetRemovalReasons = "SubredditGetRemovalReasons",
    GetHighlightedPosts = "GetHighlightedPosts",
    ReorderHighlightedPosts = "ReorderHighlightedPosts"
}
export declare const SubredditsMethodList: SubredditsMethod[];
export declare function createSubredditsServer<T extends TwirpContext = TwirpContext>(service: SubredditsTwirp<T>): TwirpServer<SubredditsTwirp<TwirpContext<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>>>, T>;
//# sourceMappingURL=subreddits_svc.twirp.d.ts.map