/**
 * #request_context.ts
 *
 * Code generated by ts-proto. DO NOT EDIT.
 * @packageDocumentation
 */
import _m0 from "protobufjs/minimal.js";
export declare enum AppStatus {
    /** APP_STATUS_UNSPECIFIED - Default value. Should not be used for requests. */
    APP_STATUS_UNSPECIFIED = 0,
    /** PRERELEASE - App is in prerelease state */
    PRERELEASE = 1,
    /** PUBLISHED - App is published and available */
    PUBLISHED = 2,
    UNRECOGNIZED = -1
}
export declare function appStatusFromJSON(object: any): AppStatus;
export declare function appStatusToJSON(object: AppStatus): number;
/**
 * RequestContext contains all the contextual information about a request
 * This context is signed as a JWT token and passed between services
 */
export interface RequestContext {
    /** Installation information for the app installation */
    installation?: InstallationContext | undefined;
    /** App information including ID, name, version, and status */
    app?: AppContext | undefined;
    /** Post information if the request is related to a specific post */
    post?: PostContext | undefined;
    /** Subreddit information if the request is related to a specific subreddit */
    subreddit?: SubredditContext | undefined;
    /** User information if the request is made by an authenticated user */
    user?: UserContext | undefined;
}
/** InstallationContext contains information about the app installation */
export interface InstallationContext {
    /** Installation ID in UUID format (e.g., "8b8ae08b-3645-49c7-b425-bd989e09bea3") */
    id: string;
}
/** AppContext contains information about the Devvit app */
export interface AppContext {
    /**
     * App ID in UUID format (e.g., "550e8400-e29b-41d4-a716-446655440000")
     *
     * @deprecated
     */
    id: string;
    /**
     * Name of the app (e.g., "My Funky App" (not a slug)
     *
     * @deprecated
     */
    name: string;
    /** Semantic version number with 4 parts (e.g., "1.2.3.4") */
    version: string;
    /** Current publishing status of the app */
    status: AppStatus;
    /** App unique identifier, also known as the slug (e.g., "my-funky-app") */
    slug: string;
    /** App account information */
    account?: AppAccount | undefined;
}
export interface AppAccount {
    /** Account ID (e.g., "t2_15bfi0") */
    id: string;
}
/** PostContext contains information about a Reddit post */
export interface PostContext {
    /** Post ID (e.g., "t3_15bfi0") */
    id: string;
    /** Author's account ID (e.g., "t2_1a2b3c4d") */
    author: string;
}
/** SubredditContext contains information about a Reddit subreddit */
export interface SubredditContext {
    /** Subreddit name without the r/ (e.g., "testsubreddit123456") */
    name: string;
    /** Subreddit ID (e.g., "t5_1a2b3c") */
    id: string;
}
/** UserContext contains information about a Reddit user */
export interface UserContext {
    /** Reddit username, maximum 20 characters (e.g., "spez") */
    name: string;
    /** User's account ID (e.g., "t2_15bfi0") */
    id: string;
    /**
     * Snoovatar image URL with Reddit's preview domain and query parameters
     * (e.g., "https://preview.redd.it/snoovatar/avatars/5e7b8e37-8189-4b33-b001-250bb8bdb730-headshot.png")
     */
    snoovatar: string;
    /** The analytics session ID for the current user session */
    sessionId: string;
}
export declare const RequestContext: {
    $type: "devvit.platform.v1.RequestContext";
    encode(message: RequestContext, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RequestContext;
    fromJSON(object: any): RequestContext;
    toJSON(message: RequestContext): unknown;
    create(base?: DeepPartial<RequestContext>): RequestContext;
    fromPartial(object: DeepPartial<RequestContext>): RequestContext;
};
export declare const InstallationContext: {
    $type: "devvit.platform.v1.InstallationContext";
    encode(message: InstallationContext, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): InstallationContext;
    fromJSON(object: any): InstallationContext;
    toJSON(message: InstallationContext): unknown;
    create(base?: DeepPartial<InstallationContext>): InstallationContext;
    fromPartial(object: DeepPartial<InstallationContext>): InstallationContext;
};
export declare const AppContext: {
    $type: "devvit.platform.v1.AppContext";
    encode(message: AppContext, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppContext;
    fromJSON(object: any): AppContext;
    toJSON(message: AppContext): unknown;
    create(base?: DeepPartial<AppContext>): AppContext;
    fromPartial(object: DeepPartial<AppContext>): AppContext;
};
export declare const AppAccount: {
    $type: "devvit.platform.v1.AppAccount";
    encode(message: AppAccount, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppAccount;
    fromJSON(object: any): AppAccount;
    toJSON(message: AppAccount): unknown;
    create(base?: DeepPartial<AppAccount>): AppAccount;
    fromPartial(object: DeepPartial<AppAccount>): AppAccount;
};
export declare const PostContext: {
    $type: "devvit.platform.v1.PostContext";
    encode(message: PostContext, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PostContext;
    fromJSON(object: any): PostContext;
    toJSON(message: PostContext): unknown;
    create(base?: DeepPartial<PostContext>): PostContext;
    fromPartial(object: DeepPartial<PostContext>): PostContext;
};
export declare const SubredditContext: {
    $type: "devvit.platform.v1.SubredditContext";
    encode(message: SubredditContext, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SubredditContext;
    fromJSON(object: any): SubredditContext;
    toJSON(message: SubredditContext): unknown;
    create(base?: DeepPartial<SubredditContext>): SubredditContext;
    fromPartial(object: DeepPartial<SubredditContext>): SubredditContext;
};
export declare const UserContext: {
    $type: "devvit.platform.v1.UserContext";
    encode(message: UserContext, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UserContext;
    fromJSON(object: any): UserContext;
    toJSON(message: UserContext): unknown;
    create(base?: DeepPartial<UserContext>): UserContext;
    fromPartial(object: DeepPartial<UserContext>): UserContext;
};
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=request_context.d.ts.map