/**
 * #app_info.ts
 *
 * @packageDocumentation
 */
import _m0 from "protobufjs/minimal.js";
import { AppPromoStatus } from "../../../../reddit/devvit/ads/v1/ads.js";
import { ComputePool } from "../../app_version/info/app_version_info.js";
import { Redditor } from "../../reddit/redditor.js";
import { Categories } from "../categories/categories.js";
/**
 * Contains the details of an app. For field documentation, refer to the Prisma
 * schema.
 */
export interface AppInfo {
    id: string;
    /**
     * A unique, immutable, and somewhat more readable name for the app; can only
     * be URL-safe chars
     */
    slug: string;
    /** Human readable name used to be displayed on UIs */
    name: string;
    /** Human readable description */
    description: string;
    /** The t2_ id of the app account associated with this app */
    appAccount?: Redditor | undefined;
    /** App is NSFW (default: false) */
    isNsfw: boolean;
    /**
     * Flag to flip when *admins* want to take an app off the App Store listings
     * (default: false)
     */
    isDelisted: boolean;
    /** Flag to designate an app maintained by Reddit, Inc. (default: false) */
    isFirstParty: boolean;
    /**
     * Flag to flip when *app owners* want to take their app off App Store
     * listings (default: false)
     */
    isArchived: boolean;
    /**
     * Deprecated: Use capabilities instead.
     *
     * @deprecated
     */
    isWebviewEnabled: boolean;
    createdAt?: Date | undefined;
    owner?: Redditor | undefined;
    categories: Categories[];
    stats?: AppStats | undefined;
    /** Human readable terms and conditions */
    termsAndConditions: string;
    /** Human readable privacy policy */
    privacyPolicy: string;
    defaultPool: ComputePool;
    /**
     * Flag to flip when *admins* want to switch the app off if the app is
     * behaving oddly, has a bad bug, or breaking something
     */
    isDisabled: boolean;
    /**
     * Flag to forbid the app installation in small subreddits (the actual upper
     * limit is specified in the code) (default: false)
     */
    minSubredditSizeRestrictionEnabled: boolean;
    /** T5 ID of the default subreddit to use for this app's playtest sessions */
    defaultPlaytestSubredditId: string;
    /** Whether the app is promoted */
    promoStatus: AppPromoStatus;
}
export interface MultipleAppInfos {
    apps: AppInfo[];
}
/** Contains stats about an app. */
export interface AppStats {
    /** How many times/locations is this app currently installed in? */
    installCount: number;
    /**
     * How many versions is this app have in total (within search criteria, e.g.
     * may exclude pre-releases)
     */
    versionsCount: number;
}
export declare const AppInfo: {
    $type: "devvit.dev_portal.app.info.AppInfo";
    encode(message: AppInfo, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppInfo;
    fromJSON(object: any): AppInfo;
    toJSON(message: AppInfo): unknown;
    create(base?: DeepPartial<AppInfo>): AppInfo;
    fromPartial(object: DeepPartial<AppInfo>): AppInfo;
};
export declare const MultipleAppInfos: {
    $type: "devvit.dev_portal.app.info.MultipleAppInfos";
    encode(message: MultipleAppInfos, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MultipleAppInfos;
    fromJSON(object: any): MultipleAppInfos;
    toJSON(message: MultipleAppInfos): unknown;
    create(base?: DeepPartial<MultipleAppInfos>): MultipleAppInfos;
    fromPartial(object: DeepPartial<MultipleAppInfos>): MultipleAppInfos;
};
export declare const AppStats: {
    $type: "devvit.dev_portal.app.info.AppStats";
    encode(message: AppStats, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppStats;
    fromJSON(object: any): AppStats;
    toJSON(message: AppStats): unknown;
    create(base?: DeepPartial<AppStats>): AppStats;
    fromPartial(object: DeepPartial<AppStats>): AppStats;
};
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=app_info.d.ts.map