import { TwirpContext, TwirpServer } from 'twirp-ts';
import { CommentRequest, JsonWrappedComment, BasicIdRequest, FollowPostRequest, InfoRequest, MoreChildrenRequest, ReportRequest, ReportAwardRequest, SaveRequest, SendRepliesRequest, SetContestModeRequest, EditCustomPostRequest, SetCustomPostPreviewRequest, SetSubredditStickyRequest, SetSuggestedSortRequest, SubmitRequest, SubmitResponse, VoteRequest, GetIsPostHighlightedRequest, GetIsPostHighlightedResponse, AddPostToHighlightsRequest, AddPostToHighlightsResponse, RemovePostFromHighlightsRequest, RemovePostFromHighlightsResponse, SetCustomPostStylesRequest, GetCustomPostStylesRequest } from './linksandcomments_msg.js';
import { Empty } from '../../../../google/protobuf/empty.js';
import { Listing, JsonStatus, JsonRedditObjects } from '../common/common_msg.js';
import { CustomPostStyles } from '../../../../reddit/devvit/post/v1/post.js';
export interface LinksAndCommentsTwirp<T extends TwirpContext = TwirpContext> {
    Comment(ctx: T, request: CommentRequest): Promise<JsonWrappedComment>;
    Del(ctx: T, request: BasicIdRequest): Promise<Empty>;
    EditUserText(ctx: T, request: CommentRequest): Promise<JsonWrappedComment>;
    FollowPost(ctx: T, request: FollowPostRequest): Promise<Empty>;
    Hide(ctx: T, request: BasicIdRequest): Promise<Empty>;
    Info(ctx: T, request: InfoRequest): Promise<Listing>;
    Lock(ctx: T, request: BasicIdRequest): Promise<Empty>;
    MarkNSFW(ctx: T, request: BasicIdRequest): Promise<Empty>;
    MoreChildren(ctx: T, request: MoreChildrenRequest): Promise<JsonWrappedComment>;
    Report(ctx: T, request: ReportRequest): Promise<JsonStatus>;
    ReportAward(ctx: T, request: ReportAwardRequest): Promise<Empty>;
    Save(ctx: T, request: SaveRequest): Promise<Empty>;
    SendReplies(ctx: T, request: SendRepliesRequest): Promise<Empty>;
    SetContestMode(ctx: T, request: SetContestModeRequest): Promise<JsonStatus>;
    EditCustomPost(ctx: T, request: EditCustomPostRequest): Promise<JsonRedditObjects>;
    SetCustomPostPreview(ctx: T, request: SetCustomPostPreviewRequest): Promise<Empty>;
    SetSubredditSticky(ctx: T, request: SetSubredditStickyRequest): Promise<JsonStatus>;
    SetSuggestedSort(ctx: T, request: SetSuggestedSortRequest): Promise<JsonStatus>;
    Spoiler(ctx: T, request: BasicIdRequest): Promise<Empty>;
    Submit(ctx: T, request: SubmitRequest): Promise<SubmitResponse>;
    SubmitCustomPost(ctx: T, request: SubmitRequest): Promise<SubmitResponse>;
    Unhide(ctx: T, request: BasicIdRequest): Promise<Empty>;
    Unlock(ctx: T, request: BasicIdRequest): Promise<Empty>;
    UnmarkNSFW(ctx: T, request: BasicIdRequest): Promise<Empty>;
    Unsave(ctx: T, request: BasicIdRequest): Promise<Empty>;
    Unspoiler(ctx: T, request: BasicIdRequest): Promise<Empty>;
    Vote(ctx: T, request: VoteRequest): Promise<Empty>;
    GetIsPostHighlighted(ctx: T, request: GetIsPostHighlightedRequest): Promise<GetIsPostHighlightedResponse>;
    AddPostToHighlights(ctx: T, request: AddPostToHighlightsRequest): Promise<AddPostToHighlightsResponse>;
    RemovePostFromHighlights(ctx: T, request: RemovePostFromHighlightsRequest): Promise<RemovePostFromHighlightsResponse>;
    SetCustomPostStyles(ctx: T, request: SetCustomPostStylesRequest): Promise<Empty>;
    GetCustomPostStyles(ctx: T, request: GetCustomPostStylesRequest): Promise<CustomPostStyles>;
}
export declare enum LinksAndCommentsMethod {
    Comment = "Comment",
    Del = "Del",
    EditUserText = "EditUserText",
    FollowPost = "FollowPost",
    Hide = "Hide",
    Info = "Info",
    Lock = "Lock",
    MarkNSFW = "MarkNSFW",
    MoreChildren = "MoreChildren",
    Report = "Report",
    ReportAward = "ReportAward",
    Save = "Save",
    SendReplies = "SendReplies",
    SetContestMode = "SetContestMode",
    EditCustomPost = "EditCustomPost",
    SetCustomPostPreview = "SetCustomPostPreview",
    SetSubredditSticky = "SetSubredditSticky",
    SetSuggestedSort = "SetSuggestedSort",
    Spoiler = "Spoiler",
    Submit = "Submit",
    SubmitCustomPost = "SubmitCustomPost",
    Unhide = "Unhide",
    Unlock = "Unlock",
    UnmarkNSFW = "UnmarkNSFW",
    Unsave = "Unsave",
    Unspoiler = "Unspoiler",
    Vote = "Vote",
    GetIsPostHighlighted = "GetIsPostHighlighted",
    AddPostToHighlights = "AddPostToHighlights",
    RemovePostFromHighlights = "RemovePostFromHighlights",
    SetCustomPostStyles = "SetCustomPostStyles",
    GetCustomPostStyles = "GetCustomPostStyles"
}
export declare const LinksAndCommentsMethodList: LinksAndCommentsMethod[];
export declare function createLinksAndCommentsServer<T extends TwirpContext = TwirpContext>(service: LinksAndCommentsTwirp<T>): TwirpServer<LinksAndCommentsTwirp<TwirpContext<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>>>, T>;
//# sourceMappingURL=linksandcomments_svc.twirp.d.ts.map