/**
 * #postv2.ts
 *
 * @packageDocumentation
 */
import _m0 from "protobufjs/minimal.js";
import { LinkFlairV2, UserFlairV2 } from "./flair.js";
export declare enum CrowdControlLevel {
    OFF = 0,
    LENIENT = 1,
    MEDIUM = 2,
    STRICT = 3,
    UNRECOGNIZED = -1
}
export declare function crowdControlLevelFromJSON(object: any): CrowdControlLevel;
export declare function crowdControlLevelToJSON(object: CrowdControlLevel): number;
export declare enum DistinguishType {
    NULL_VALUE = 0,
    ADMIN = 1,
    GOLD = 2,
    GOLD_AUTO = 3,
    YES = 4,
    SPECIAL = 5,
    UNRECOGNIZED = -1
}
export declare function distinguishTypeFromJSON(object: any): DistinguishType;
export declare function distinguishTypeToJSON(object: DistinguishType): number;
export interface PostV2 {
    id: string;
    title: string;
    /** rename to text? */
    selftext: string;
    nsfw: boolean;
    authorId: string;
    crowdControlLevel: CrowdControlLevel;
    numReports: number;
    isGallery: boolean;
    isMeta: boolean;
    createdAt: number;
    isApproved: boolean;
    isArchived: boolean;
    distinguished: DistinguishType;
    ignoreReports: boolean;
    isSelf: boolean;
    isVideo: boolean;
    isLocked: boolean;
    isSpoiler: boolean;
    subredditId: string;
    upvotes: number;
    downvotes: number;
    url: string;
    isSticky: boolean;
    linkFlair?: LinkFlairV2 | undefined;
    authorFlair?: UserFlairV2 | undefined;
    spam: boolean;
    deleted: boolean;
    languageCode: string;
    updatedAt: number;
    gildings: number;
    score: number;
    numComments: number;
    thumbnail: string;
    media?: MediaObject | undefined;
    crosspostParentId: string;
    permalink: string;
    isPoll: boolean;
    isPromoted: boolean;
    isMultiMedia: boolean;
    type: string;
    unlisted: boolean;
    galleryImages: string[];
    /** Indicates if the post contains a single image rather than a gallery of multiple images, which is indicated by the is_gallery field. */
    isImage: boolean;
    mediaUrls: string[];
    isClubContent: boolean;
}
export interface Oembed {
    type: string;
    version: string;
    title: string;
    description: string;
    authorName: string;
    authorUrl: string;
    providerName: string;
    providerUrl: string;
    thumbnailUrl: string;
    thumbnailWidth: number;
    thumbnailHeight: number;
    html: string;
    width: number;
    height: number;
}
export interface RedditVideo {
    bitrateKbps: number;
    fallbackUrl: string;
    height: number;
    width: number;
    scrubberMediaUrl: string;
    dashUrl: string;
    duration: number;
    hlsUrl: string;
    isGif: boolean;
    transcodingStatus: string;
}
export interface MediaObject {
    type: string;
    oembed?: Oembed | undefined;
    redditVideo?: RedditVideo | undefined;
}
export declare const PostV2: {
    $type: "devvit.reddit.v2alpha.PostV2";
    encode(message: PostV2, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PostV2;
    fromJSON(object: any): PostV2;
    toJSON(message: PostV2): unknown;
    create(base?: DeepPartial<PostV2>): PostV2;
    fromPartial(object: DeepPartial<PostV2>): PostV2;
};
export declare const Oembed: {
    $type: "devvit.reddit.v2alpha.Oembed";
    encode(message: Oembed, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Oembed;
    fromJSON(object: any): Oembed;
    toJSON(message: Oembed): unknown;
    create(base?: DeepPartial<Oembed>): Oembed;
    fromPartial(object: DeepPartial<Oembed>): Oembed;
};
export declare const RedditVideo: {
    $type: "devvit.reddit.v2alpha.RedditVideo";
    encode(message: RedditVideo, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RedditVideo;
    fromJSON(object: any): RedditVideo;
    toJSON(message: RedditVideo): unknown;
    create(base?: DeepPartial<RedditVideo>): RedditVideo;
    fromPartial(object: DeepPartial<RedditVideo>): RedditVideo;
};
export declare const MediaObject: {
    $type: "devvit.reddit.v2alpha.MediaObject";
    encode(message: MediaObject, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MediaObject;
    fromJSON(object: any): MediaObject;
    toJSON(message: MediaObject): unknown;
    create(base?: DeepPartial<MediaObject>): MediaObject;
    fromPartial(object: DeepPartial<MediaObject>): MediaObject;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export {};
//# sourceMappingURL=postv2.d.ts.map