/**
 * #admin_portal.ts
 *
 * Code generated by ts-proto. DO NOT EDIT.
 * @packageDocumentation
 */
import _m0 from "protobufjs/minimal.js";
import { Metadata } from "../../../lib/Types.js";
import { Empty } from "../../google/protobuf/empty.js";
import { Int32Value } from "../../google/protobuf/wrappers.js";
import { AddDomainsToAppRequest, AppWithDomainInfo, GetAppBySlugWithDomainInfoRequest, GetAppsWithDomainInfoRequest, GetAppsWithDomainInfoResponse, RemoveDomainFromAppRequest } from "./app/app.js";
import { AddCuratedGameRequest, AddCuratedGameResponse, ListCuratedGamesRequest, ListCuratedGamesResponse, RemoveCuratedGameRequest, UpdateCuratedGameRankRequest, UpdateCuratedGameRankResponse } from "./curated_game/curated_game.js";
import { GetPendingRequest, GetResponse, UpdateStatusForAppRequest } from "./fetch_domain_request/fetch_domain_request.js";
import { FullInstallationInfo, InstallationUpgradeManyRequest, InstallationUpgradeManyResponse, InstallationUpgradeRequest } from "./installation/installation.js";
export interface AdminInstallation {
    Upgrade(request: InstallationUpgradeRequest, metadata?: Metadata): Promise<FullInstallationInfo>;
    UpgradeMany(request: InstallationUpgradeManyRequest, metadata?: Metadata): Promise<InstallationUpgradeManyResponse>;
}
export declare const AdminInstallationServiceName = "devvit.dev_portal.AdminInstallation";
export declare class AdminInstallationClientImpl implements AdminInstallation {
    private readonly rpc;
    private readonly service;
    constructor(rpc: Rpc, opts?: {
        service?: string;
    });
    Upgrade(request: InstallationUpgradeRequest, metadata?: Metadata): Promise<FullInstallationInfo>;
    UpgradeMany(request: InstallationUpgradeManyRequest, metadata?: Metadata): Promise<InstallationUpgradeManyResponse>;
}
export type AdminInstallationDefinition = typeof AdminInstallationDefinition;
export declare const AdminInstallationDefinition: {
    readonly name: "AdminInstallation";
    readonly fullName: "devvit.dev_portal.AdminInstallation";
    readonly methods: {
        readonly upgrade: {
            readonly name: "Upgrade";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.InstallationUpgradeRequest";
                encode(message: InstallationUpgradeRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationUpgradeRequest;
                fromJSON(object: any): InstallationUpgradeRequest;
                toJSON(message: InstallationUpgradeRequest): unknown;
                create(base?: {
                    id?: string;
                    appVersionId?: string | undefined | undefined;
                }): InstallationUpgradeRequest;
                fromPartial(object: {
                    id?: string;
                    appVersionId?: string | undefined | undefined;
                }): InstallationUpgradeRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.installation.FullInstallationInfo";
                encode(message: FullInstallationInfo, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): FullInstallationInfo;
                fromJSON(object: any): FullInstallationInfo;
                toJSON(message: FullInstallationInfo): unknown;
                create(base?: {
                    installation?: {
                        id?: string;
                        upgradeStrategy?: import("./installation/installation.js").UpgradeStrategy;
                        upgradeStrategyConfig?: {
                            [x: string]: any;
                        } | undefined;
                        runAs?: string | undefined | undefined;
                        type?: import("./app_version/info/app_version_info.js").InstallationType;
                        location?: {
                            id?: string;
                            name?: string;
                            type?: import("../reddit/thing_type.js").ThingType;
                            icon?: string | undefined | undefined;
                            isNsfw?: boolean;
                            isUnavailable?: boolean;
                            isModerator?: boolean;
                        } | undefined;
                        developerPermissions?: import("./installation/installation.js").DeveloperPermissions;
                        appInstallState?: import("./installation/installation.js").AppInstallState;
                        computeCluster?: import("./app/info/compute_cluster.js").ComputeCluster;
                    } | undefined;
                    appVersion?: {
                        id?: string;
                        visibility?: import("./app_version/info/app_version_info.js").VersionVisibility;
                        validInstallTypes?: import("./app_version/info/app_version_info.js").InstallationType[];
                        majorVersion?: number;
                        minorVersion?: number;
                        patchVersion?: number;
                        prereleaseVersion?: number | undefined | undefined;
                        uploadedAt?: Date | undefined;
                        buildStatus?: import("./app_version/info/app_version_info.js").BuildStatus;
                        builtAt?: Date | undefined;
                        about?: string;
                        hasCustomSettings?: boolean;
                        pool?: import("./app_version/info/app_version_info.js").ComputePool;
                        appCapabilities?: import("./nutrition/nutrition.js").NutritionCategory[];
                        publicApiVersion?: string | undefined | undefined;
                        marketingInfo?: {
                            icon?: string | undefined | undefined;
                        } | undefined;
                        hasDevvitJson?: boolean;
                        sourceUploadInfo?: {
                            uploadUrl?: string | undefined | undefined;
                            requiredHeaders?: {
                                [x: string]: string | undefined;
                            };
                            s3ObjectKey?: string | undefined | undefined;
                        } | undefined;
                    } | undefined;
                    app?: {
                        id?: string;
                        slug?: string;
                        name?: string;
                        description?: string;
                        appAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        isNsfw?: boolean;
                        isDelisted?: boolean;
                        isFirstParty?: boolean;
                        isArchived?: boolean;
                        isWebviewEnabled?: boolean;
                        createdAt?: Date | undefined;
                        owner?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        categories?: import("./app/categories/categories.js").Categories[];
                        stats?: {
                            installCount?: number;
                            versionsCount?: number;
                        } | undefined;
                        termsAndConditions?: string;
                        privacyPolicy?: string;
                        defaultPool?: import("./app_version/info/app_version_info.js").ComputePool;
                        isDisabled?: boolean;
                        minSubredditSizeRestrictionEnabled?: boolean;
                        defaultPlaytestSubredditId?: string;
                        promoStatus?: import("../../../community.js").AppPromoStatus;
                        appIconUrl?: string | undefined | undefined;
                        categoriesV2?: {
                            id?: number;
                            name?: string;
                            parentId?: number | undefined | undefined;
                        }[];
                        defaultComputeCluster?: import("./app/info/compute_cluster.js").ComputeCluster;
                    } | undefined;
                }): FullInstallationInfo;
                fromPartial(object: {
                    installation?: {
                        id?: string;
                        upgradeStrategy?: import("./installation/installation.js").UpgradeStrategy;
                        upgradeStrategyConfig?: {
                            [x: string]: any;
                        } | undefined;
                        runAs?: string | undefined | undefined;
                        type?: import("./app_version/info/app_version_info.js").InstallationType;
                        location?: {
                            id?: string;
                            name?: string;
                            type?: import("../reddit/thing_type.js").ThingType;
                            icon?: string | undefined | undefined;
                            isNsfw?: boolean;
                            isUnavailable?: boolean;
                            isModerator?: boolean;
                        } | undefined;
                        developerPermissions?: import("./installation/installation.js").DeveloperPermissions;
                        appInstallState?: import("./installation/installation.js").AppInstallState;
                        computeCluster?: import("./app/info/compute_cluster.js").ComputeCluster;
                    } | undefined;
                    appVersion?: {
                        id?: string;
                        visibility?: import("./app_version/info/app_version_info.js").VersionVisibility;
                        validInstallTypes?: import("./app_version/info/app_version_info.js").InstallationType[];
                        majorVersion?: number;
                        minorVersion?: number;
                        patchVersion?: number;
                        prereleaseVersion?: number | undefined | undefined;
                        uploadedAt?: Date | undefined;
                        buildStatus?: import("./app_version/info/app_version_info.js").BuildStatus;
                        builtAt?: Date | undefined;
                        about?: string;
                        hasCustomSettings?: boolean;
                        pool?: import("./app_version/info/app_version_info.js").ComputePool;
                        appCapabilities?: import("./nutrition/nutrition.js").NutritionCategory[];
                        publicApiVersion?: string | undefined | undefined;
                        marketingInfo?: {
                            icon?: string | undefined | undefined;
                        } | undefined;
                        hasDevvitJson?: boolean;
                        sourceUploadInfo?: {
                            uploadUrl?: string | undefined | undefined;
                            requiredHeaders?: {
                                [x: string]: string | undefined;
                            };
                            s3ObjectKey?: string | undefined | undefined;
                        } | undefined;
                    } | undefined;
                    app?: {
                        id?: string;
                        slug?: string;
                        name?: string;
                        description?: string;
                        appAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        isNsfw?: boolean;
                        isDelisted?: boolean;
                        isFirstParty?: boolean;
                        isArchived?: boolean;
                        isWebviewEnabled?: boolean;
                        createdAt?: Date | undefined;
                        owner?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        categories?: import("./app/categories/categories.js").Categories[];
                        stats?: {
                            installCount?: number;
                            versionsCount?: number;
                        } | undefined;
                        termsAndConditions?: string;
                        privacyPolicy?: string;
                        defaultPool?: import("./app_version/info/app_version_info.js").ComputePool;
                        isDisabled?: boolean;
                        minSubredditSizeRestrictionEnabled?: boolean;
                        defaultPlaytestSubredditId?: string;
                        promoStatus?: import("../../../community.js").AppPromoStatus;
                        appIconUrl?: string | undefined | undefined;
                        categoriesV2?: {
                            id?: number;
                            name?: string;
                            parentId?: number | undefined | undefined;
                        }[];
                        defaultComputeCluster?: import("./app/info/compute_cluster.js").ComputeCluster;
                    } | undefined;
                }): FullInstallationInfo;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly upgradeMany: {
            readonly name: "UpgradeMany";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.InstallationUpgradeManyRequest";
                encode(message: InstallationUpgradeManyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationUpgradeManyRequest;
                fromJSON(object: any): InstallationUpgradeManyRequest;
                toJSON(message: InstallationUpgradeManyRequest): unknown;
                create(base?: {
                    ids?: string[];
                    appVersionId?: string;
                }): InstallationUpgradeManyRequest;
                fromPartial(object: {
                    ids?: string[];
                    appVersionId?: string;
                }): InstallationUpgradeManyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.installation.InstallationUpgradeManyResponse";
                encode(message: InstallationUpgradeManyResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationUpgradeManyResponse;
                fromJSON(object: any): InstallationUpgradeManyResponse;
                toJSON(message: InstallationUpgradeManyResponse): unknown;
                create(base?: {
                    details?: {
                        id?: string;
                        success?: boolean;
                        error?: string | undefined | undefined;
                    }[];
                }): InstallationUpgradeManyResponse;
                fromPartial(object: {
                    details?: {
                        id?: string;
                        success?: boolean;
                        error?: string | undefined | undefined;
                    }[];
                }): InstallationUpgradeManyResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
/** Service used for reading and updating fetch domain requests from the Admin Portal. */
export interface AdminFetchDomainRequest {
    /** Retrieves a page of fetch domain requests with status PENDING. */
    GetPending(request: GetPendingRequest, metadata?: Metadata): Promise<GetResponse>;
    /** Returns the number of fetch domain requests with status PENDING. */
    GetPendingRequestsCount(request: Empty, metadata?: Metadata): Promise<Int32Value>;
    /** Updates the status of a fetch domain request for a given app. */
    UpdateStatusForApp(request: UpdateStatusForAppRequest, metadata?: Metadata): Promise<Empty>;
}
export declare const AdminFetchDomainRequestServiceName = "devvit.dev_portal.AdminFetchDomainRequest";
export declare class AdminFetchDomainRequestClientImpl implements AdminFetchDomainRequest {
    private readonly rpc;
    private readonly service;
    constructor(rpc: Rpc, opts?: {
        service?: string;
    });
    GetPending(request: GetPendingRequest, metadata?: Metadata): Promise<GetResponse>;
    GetPendingRequestsCount(request: Empty, metadata?: Metadata): Promise<Int32Value>;
    UpdateStatusForApp(request: UpdateStatusForAppRequest, metadata?: Metadata): Promise<Empty>;
}
/** Service used for reading and updating fetch domain requests from the Admin Portal. */
export type AdminFetchDomainRequestDefinition = typeof AdminFetchDomainRequestDefinition;
export declare const AdminFetchDomainRequestDefinition: {
    readonly name: "AdminFetchDomainRequest";
    readonly fullName: "devvit.dev_portal.AdminFetchDomainRequest";
    readonly methods: {
        /** Retrieves a page of fetch domain requests with status PENDING. */
        readonly getPending: {
            readonly name: "GetPending";
            readonly requestType: {
                $type: "devvit.dev_portal.fetch_domain_request.GetPendingRequest";
                encode(message: GetPendingRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetPendingRequest;
                fromJSON(object: any): GetPendingRequest;
                toJSON(message: GetPendingRequest): unknown;
                create(base?: {
                    pageSize?: number;
                    pageNumber?: number;
                }): GetPendingRequest;
                fromPartial(object: {
                    pageSize?: number;
                    pageNumber?: number;
                }): GetPendingRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.fetch_domain_request.GetResponse";
                encode(message: GetResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetResponse;
                fromJSON(object: any): GetResponse;
                toJSON(message: GetResponse): unknown;
                create(base?: {
                    fetchDomainRequests?: {
                        id?: string;
                        createdAt?: Date | undefined;
                        updatedAt?: Date | undefined;
                        domain?: string;
                        status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                        reviewerId?: string | undefined | undefined;
                        appSlug?: string | undefined | undefined;
                        appOwnerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        reviewerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        timeInQueue?: string | undefined | undefined;
                    }[];
                    hasNextPage?: boolean | undefined | undefined;
                }): GetResponse;
                fromPartial(object: {
                    fetchDomainRequests?: {
                        id?: string;
                        createdAt?: Date | undefined;
                        updatedAt?: Date | undefined;
                        domain?: string;
                        status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                        reviewerId?: string | undefined | undefined;
                        appSlug?: string | undefined | undefined;
                        appOwnerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        reviewerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        timeInQueue?: string | undefined | undefined;
                    }[];
                    hasNextPage?: boolean | undefined | undefined;
                }): GetResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Returns the number of fetch domain requests with status PENDING. */
        readonly getPendingRequestsCount: {
            readonly name: "GetPendingRequestsCount";
            readonly requestType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int32Value";
                encode(message: Int32Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int32Value;
                fromJSON(object: any): Int32Value;
                toJSON(message: Int32Value): unknown;
                create(base?: {
                    value?: number;
                }): Int32Value;
                fromPartial(object: {
                    value?: number;
                }): Int32Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Updates the status of a fetch domain request for a given app. */
        readonly updateStatusForApp: {
            readonly name: "UpdateStatusForApp";
            readonly requestType: {
                $type: "devvit.dev_portal.fetch_domain_request.UpdateStatusForAppRequest";
                encode(message: UpdateStatusForAppRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStatusForAppRequest;
                fromJSON(object: any): UpdateStatusForAppRequest;
                toJSON(message: UpdateStatusForAppRequest): unknown;
                create(base?: {
                    id?: string;
                    appSlug?: string;
                    domain?: string;
                    status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                }): UpdateStatusForAppRequest;
                fromPartial(object: {
                    id?: string;
                    appSlug?: string;
                    domain?: string;
                    status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                }): UpdateStatusForAppRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
/** Service used for reading and updating app information from the Admin Portal. */
export interface AdminApp {
    /** Retrieves an app by slug with its fetch domain info. */
    GetAppBySlugWithDomainInfo(request: GetAppBySlugWithDomainInfoRequest, metadata?: Metadata): Promise<AppWithDomainInfo>;
    /** Retrieves a page of apps with their fetch domain info. */
    GetAppsWithDomainInfo(request: GetAppsWithDomainInfoRequest, metadata?: Metadata): Promise<GetAppsWithDomainInfoResponse>;
    /** Adds domains to an app's allowedDomains list. */
    AddDomainsToApp(request: AddDomainsToAppRequest, metadata?: Metadata): Promise<Empty>;
    /** Removes a domain from an app's allowedDomains list. */
    RemoveDomainFromApp(request: RemoveDomainFromAppRequest, metadata?: Metadata): Promise<Empty>;
}
export declare const AdminAppServiceName = "devvit.dev_portal.AdminApp";
export declare class AdminAppClientImpl implements AdminApp {
    private readonly rpc;
    private readonly service;
    constructor(rpc: Rpc, opts?: {
        service?: string;
    });
    GetAppBySlugWithDomainInfo(request: GetAppBySlugWithDomainInfoRequest, metadata?: Metadata): Promise<AppWithDomainInfo>;
    GetAppsWithDomainInfo(request: GetAppsWithDomainInfoRequest, metadata?: Metadata): Promise<GetAppsWithDomainInfoResponse>;
    AddDomainsToApp(request: AddDomainsToAppRequest, metadata?: Metadata): Promise<Empty>;
    RemoveDomainFromApp(request: RemoveDomainFromAppRequest, metadata?: Metadata): Promise<Empty>;
}
/** Service used for reading and updating app information from the Admin Portal. */
export type AdminAppDefinition = typeof AdminAppDefinition;
export declare const AdminAppDefinition: {
    readonly name: "AdminApp";
    readonly fullName: "devvit.dev_portal.AdminApp";
    readonly methods: {
        /** Retrieves an app by slug with its fetch domain info. */
        readonly getAppBySlugWithDomainInfo: {
            readonly name: "GetAppBySlugWithDomainInfo";
            readonly requestType: {
                $type: "devvit.dev_portal.app.GetAppBySlugWithDomainInfoRequest";
                encode(message: GetAppBySlugWithDomainInfoRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetAppBySlugWithDomainInfoRequest;
                fromJSON(object: any): GetAppBySlugWithDomainInfoRequest;
                toJSON(message: GetAppBySlugWithDomainInfoRequest): unknown;
                create(base?: {
                    appSlug?: string;
                }): GetAppBySlugWithDomainInfoRequest;
                fromPartial(object: {
                    appSlug?: string;
                }): GetAppBySlugWithDomainInfoRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.app.AppWithDomainInfo";
                encode(message: AppWithDomainInfo, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): AppWithDomainInfo;
                fromJSON(object: any): AppWithDomainInfo;
                toJSON(message: AppWithDomainInfo): unknown;
                create(base?: {
                    appId?: string;
                    appSlug?: string;
                    appName?: string;
                    appOwnerAccount?: {
                        id?: string;
                        displayName?: string;
                        snoovatarIconUrl?: string;
                    } | undefined;
                    domainRequests?: {
                        id?: string;
                        createdAt?: Date | undefined;
                        updatedAt?: Date | undefined;
                        domain?: string;
                        status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                        reviewerId?: string | undefined | undefined;
                        appSlug?: string | undefined | undefined;
                        appOwnerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        reviewerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        timeInQueue?: string | undefined | undefined;
                    }[];
                    allowedDomains?: {
                        domain?: string;
                        globalStatus?: import("./fetch_domain/fetch_domain.js").FetchDomainGlobalStatus;
                    }[];
                }): AppWithDomainInfo;
                fromPartial(object: {
                    appId?: string;
                    appSlug?: string;
                    appName?: string;
                    appOwnerAccount?: {
                        id?: string;
                        displayName?: string;
                        snoovatarIconUrl?: string;
                    } | undefined;
                    domainRequests?: {
                        id?: string;
                        createdAt?: Date | undefined;
                        updatedAt?: Date | undefined;
                        domain?: string;
                        status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                        reviewerId?: string | undefined | undefined;
                        appSlug?: string | undefined | undefined;
                        appOwnerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        reviewerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        timeInQueue?: string | undefined | undefined;
                    }[];
                    allowedDomains?: {
                        domain?: string;
                        globalStatus?: import("./fetch_domain/fetch_domain.js").FetchDomainGlobalStatus;
                    }[];
                }): AppWithDomainInfo;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Retrieves a page of apps with their fetch domain info. */
        readonly getAppsWithDomainInfo: {
            readonly name: "GetAppsWithDomainInfo";
            readonly requestType: {
                $type: "devvit.dev_portal.app.GetAppsWithDomainInfoRequest";
                encode(message: GetAppsWithDomainInfoRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetAppsWithDomainInfoRequest;
                fromJSON(object: any): GetAppsWithDomainInfoRequest;
                toJSON(message: GetAppsWithDomainInfoRequest): unknown;
                create(base?: {
                    pageSize?: number;
                    pageNumber?: number;
                }): GetAppsWithDomainInfoRequest;
                fromPartial(object: {
                    pageSize?: number;
                    pageNumber?: number;
                }): GetAppsWithDomainInfoRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.app.GetAppsWithDomainInfoResponse";
                encode(message: GetAppsWithDomainInfoResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetAppsWithDomainInfoResponse;
                fromJSON(object: any): GetAppsWithDomainInfoResponse;
                toJSON(message: GetAppsWithDomainInfoResponse): unknown;
                create(base?: {
                    apps?: {
                        appId?: string;
                        appSlug?: string;
                        appName?: string;
                        appOwnerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        domainRequests?: {
                            id?: string;
                            createdAt?: Date | undefined;
                            updatedAt?: Date | undefined;
                            domain?: string;
                            status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                            reviewerId?: string | undefined | undefined;
                            appSlug?: string | undefined | undefined;
                            appOwnerAccount?: {
                                id?: string;
                                displayName?: string;
                                snoovatarIconUrl?: string;
                            } | undefined;
                            reviewerAccount?: {
                                id?: string;
                                displayName?: string;
                                snoovatarIconUrl?: string;
                            } | undefined;
                            timeInQueue?: string | undefined | undefined;
                        }[];
                        allowedDomains?: {
                            domain?: string;
                            globalStatus?: import("./fetch_domain/fetch_domain.js").FetchDomainGlobalStatus;
                        }[];
                    }[];
                    hasNextPage?: boolean | undefined | undefined;
                }): GetAppsWithDomainInfoResponse;
                fromPartial(object: {
                    apps?: {
                        appId?: string;
                        appSlug?: string;
                        appName?: string;
                        appOwnerAccount?: {
                            id?: string;
                            displayName?: string;
                            snoovatarIconUrl?: string;
                        } | undefined;
                        domainRequests?: {
                            id?: string;
                            createdAt?: Date | undefined;
                            updatedAt?: Date | undefined;
                            domain?: string;
                            status?: import("./fetch_domain_request/fetch_domain_request.js").FetchDomainRequestStatus;
                            reviewerId?: string | undefined | undefined;
                            appSlug?: string | undefined | undefined;
                            appOwnerAccount?: {
                                id?: string;
                                displayName?: string;
                                snoovatarIconUrl?: string;
                            } | undefined;
                            reviewerAccount?: {
                                id?: string;
                                displayName?: string;
                                snoovatarIconUrl?: string;
                            } | undefined;
                            timeInQueue?: string | undefined | undefined;
                        }[];
                        allowedDomains?: {
                            domain?: string;
                            globalStatus?: import("./fetch_domain/fetch_domain.js").FetchDomainGlobalStatus;
                        }[];
                    }[];
                    hasNextPage?: boolean | undefined | undefined;
                }): GetAppsWithDomainInfoResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Adds domains to an app's allowedDomains list. */
        readonly addDomainsToApp: {
            readonly name: "AddDomainsToApp";
            readonly requestType: {
                $type: "devvit.dev_portal.app.AddDomainsToAppRequest";
                encode(message: AddDomainsToAppRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): AddDomainsToAppRequest;
                fromJSON(object: any): AddDomainsToAppRequest;
                toJSON(message: AddDomainsToAppRequest): unknown;
                create(base?: {
                    appId?: string;
                    domains?: string[];
                }): AddDomainsToAppRequest;
                fromPartial(object: {
                    appId?: string;
                    domains?: string[];
                }): AddDomainsToAppRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Removes a domain from an app's allowedDomains list. */
        readonly removeDomainFromApp: {
            readonly name: "RemoveDomainFromApp";
            readonly requestType: {
                $type: "devvit.dev_portal.app.RemoveDomainFromAppRequest";
                encode(message: RemoveDomainFromAppRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): RemoveDomainFromAppRequest;
                fromJSON(object: any): RemoveDomainFromAppRequest;
                toJSON(message: RemoveDomainFromAppRequest): unknown;
                create(base?: {
                    appId?: string;
                    domain?: string;
                }): RemoveDomainFromAppRequest;
                fromPartial(object: {
                    appId?: string;
                    domain?: string;
                }): RemoveDomainFromAppRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
/** Service used for reading and mutating curated games in the Admin Portal. */
export interface AdminCuratedGame {
    /** Lists curated game entries, optionally filtered by curation type. */
    ListGames(request: ListCuratedGamesRequest, metadata?: Metadata): Promise<ListCuratedGamesResponse>;
    /** Adds an app to a curated game list. */
    AddGame(request: AddCuratedGameRequest, metadata?: Metadata): Promise<AddCuratedGameResponse>;
    /** Updates rank for an app in the curated games list. */
    UpdateGameRank(request: UpdateCuratedGameRankRequest, metadata?: Metadata): Promise<UpdateCuratedGameRankResponse>;
    /** Removes an app from the curated games list. */
    RemoveGame(request: RemoveCuratedGameRequest, metadata?: Metadata): Promise<Empty>;
}
export declare const AdminCuratedGameServiceName = "devvit.dev_portal.AdminCuratedGame";
export declare class AdminCuratedGameClientImpl implements AdminCuratedGame {
    private readonly rpc;
    private readonly service;
    constructor(rpc: Rpc, opts?: {
        service?: string;
    });
    ListGames(request: ListCuratedGamesRequest, metadata?: Metadata): Promise<ListCuratedGamesResponse>;
    AddGame(request: AddCuratedGameRequest, metadata?: Metadata): Promise<AddCuratedGameResponse>;
    UpdateGameRank(request: UpdateCuratedGameRankRequest, metadata?: Metadata): Promise<UpdateCuratedGameRankResponse>;
    RemoveGame(request: RemoveCuratedGameRequest, metadata?: Metadata): Promise<Empty>;
}
/** Service used for reading and mutating curated games in the Admin Portal. */
export type AdminCuratedGameDefinition = typeof AdminCuratedGameDefinition;
export declare const AdminCuratedGameDefinition: {
    readonly name: "AdminCuratedGame";
    readonly fullName: "devvit.dev_portal.AdminCuratedGame";
    readonly methods: {
        /** Lists curated game entries, optionally filtered by curation type. */
        readonly listGames: {
            readonly name: "ListGames";
            readonly requestType: {
                $type: "devvit.dev_portal.curated_game.ListCuratedGamesRequest";
                encode(message: ListCuratedGamesRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListCuratedGamesRequest;
                fromJSON(object: any): ListCuratedGamesRequest;
                toJSON(message: ListCuratedGamesRequest): unknown;
                create(base?: {
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType | undefined;
                }): ListCuratedGamesRequest;
                fromPartial(object: {
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType | undefined;
                }): ListCuratedGamesRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.curated_game.ListCuratedGamesResponse";
                encode(message: ListCuratedGamesResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListCuratedGamesResponse;
                fromJSON(object: any): ListCuratedGamesResponse;
                toJSON(message: ListCuratedGamesResponse): unknown;
                create(base?: {
                    entries?: {
                        appId?: string;
                        appName?: string;
                        appSlug?: string;
                        curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                        lastModified?: Date | undefined;
                        rank?: number;
                        subredditId?: string;
                    }[];
                }): ListCuratedGamesResponse;
                fromPartial(object: {
                    entries?: {
                        appId?: string;
                        appName?: string;
                        appSlug?: string;
                        curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                        lastModified?: Date | undefined;
                        rank?: number;
                        subredditId?: string;
                    }[];
                }): ListCuratedGamesResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Adds an app to a curated game list. */
        readonly addGame: {
            readonly name: "AddGame";
            readonly requestType: {
                $type: "devvit.dev_portal.curated_game.AddCuratedGameRequest";
                encode(message: AddCuratedGameRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): AddCuratedGameRequest;
                fromJSON(object: any): AddCuratedGameRequest;
                toJSON(message: AddCuratedGameRequest): unknown;
                create(base?: {
                    appSlug?: string;
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                    subredditId?: string;
                }): AddCuratedGameRequest;
                fromPartial(object: {
                    appSlug?: string;
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                    subredditId?: string;
                }): AddCuratedGameRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.curated_game.AddCuratedGameResponse";
                encode(message: AddCuratedGameResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): AddCuratedGameResponse;
                fromJSON(object: any): AddCuratedGameResponse;
                toJSON(message: AddCuratedGameResponse): unknown;
                create(base?: {
                    entry?: {
                        appId?: string;
                        appName?: string;
                        appSlug?: string;
                        curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                        lastModified?: Date | undefined;
                        rank?: number;
                        subredditId?: string;
                    } | undefined;
                }): AddCuratedGameResponse;
                fromPartial(object: {
                    entry?: {
                        appId?: string;
                        appName?: string;
                        appSlug?: string;
                        curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                        lastModified?: Date | undefined;
                        rank?: number;
                        subredditId?: string;
                    } | undefined;
                }): AddCuratedGameResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Updates rank for an app in the curated games list. */
        readonly updateGameRank: {
            readonly name: "UpdateGameRank";
            readonly requestType: {
                $type: "devvit.dev_portal.curated_game.UpdateCuratedGameRankRequest";
                encode(message: UpdateCuratedGameRankRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateCuratedGameRankRequest;
                fromJSON(object: any): UpdateCuratedGameRankRequest;
                toJSON(message: UpdateCuratedGameRankRequest): unknown;
                create(base?: {
                    appSlug?: string;
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                    rank?: number;
                }): UpdateCuratedGameRankRequest;
                fromPartial(object: {
                    appSlug?: string;
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                    rank?: number;
                }): UpdateCuratedGameRankRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.dev_portal.curated_game.UpdateCuratedGameRankResponse";
                encode(message: UpdateCuratedGameRankResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): UpdateCuratedGameRankResponse;
                fromJSON(object: any): UpdateCuratedGameRankResponse;
                toJSON(message: UpdateCuratedGameRankResponse): unknown;
                create(base?: {
                    entry?: {
                        appId?: string;
                        appName?: string;
                        appSlug?: string;
                        curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                        lastModified?: Date | undefined;
                        rank?: number;
                        subredditId?: string;
                    } | undefined;
                }): UpdateCuratedGameRankResponse;
                fromPartial(object: {
                    entry?: {
                        appId?: string;
                        appName?: string;
                        appSlug?: string;
                        curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                        lastModified?: Date | undefined;
                        rank?: number;
                        subredditId?: string;
                    } | undefined;
                }): UpdateCuratedGameRankResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Removes an app from the curated games list. */
        readonly removeGame: {
            readonly name: "RemoveGame";
            readonly requestType: {
                $type: "devvit.dev_portal.curated_game.RemoveCuratedGameRequest";
                encode(message: RemoveCuratedGameRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): RemoveCuratedGameRequest;
                fromJSON(object: any): RemoveCuratedGameRequest;
                toJSON(message: RemoveCuratedGameRequest): unknown;
                create(base?: {
                    appSlug?: string;
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                }): RemoveCuratedGameRequest;
                fromPartial(object: {
                    appSlug?: string;
                    curationType?: import("./curated_game/curated_game.js").CuratedGameCurationType;
                }): RemoveCuratedGameRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
interface Rpc {
    request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
}
export {};
//# sourceMappingURL=admin_portal.d.ts.map