/**
 * #installation.ts
 *
 * Code generated by ts-proto. DO NOT EDIT.
 * @packageDocumentation
 */
import _m0 from "protobufjs/minimal.js";
import { Metadata } from "../../../../../../lib/Types.js";
import { FullInstallationInfo, GetByAppNameAndInstallLocationRequest, InstallationCreationRequest } from "../../../../../devvit/dev_portal/installation/installation.js";
export interface InstallationService {
    Create(request: InstallationCreationRequest, metadata?: Metadata): Promise<FullInstallationInfo>;
    GetByAppNameAndInstallLocation(request: GetByAppNameAndInstallLocationRequest, metadata?: Metadata): Promise<FullInstallationInfo>;
}
export declare const InstallationServiceServiceName = "devvit.dev_portal.v1.InstallationService";
export declare class InstallationServiceClientImpl implements InstallationService {
    private readonly rpc;
    private readonly service;
    constructor(rpc: Rpc, opts?: {
        service?: string;
    });
    Create(request: InstallationCreationRequest, metadata?: Metadata): Promise<FullInstallationInfo>;
    GetByAppNameAndInstallLocation(request: GetByAppNameAndInstallLocationRequest, metadata?: Metadata): Promise<FullInstallationInfo>;
}
export type InstallationServiceDefinition = typeof InstallationServiceDefinition;
export declare const InstallationServiceDefinition: {
    readonly name: "InstallationService";
    readonly fullName: "devvit.dev_portal.v1.InstallationService";
    readonly methods: {
        readonly create: {
            readonly name: "Create";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.InstallationCreationRequest";
                encode(message: InstallationCreationRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationCreationRequest;
                fromJSON(object: any): InstallationCreationRequest;
                toJSON(message: InstallationCreationRequest): unknown;
                create(base?: {
                    appVersionId?: string;
                    runAs?: string | undefined | undefined;
                    type?: import("../../../../../../community.js").InstallationType;
                    location?: string;
                    upgradeStrategy?: import("../../../../../devvit/dev_portal/installation/installation.js").UpgradeStrategy;
                    upgradeStrategyConfig?: {
                        [x: string]: any;
                    } | undefined;
                }): InstallationCreationRequest;
                fromPartial(object: {
                    appVersionId?: string;
                    runAs?: string | undefined | undefined;
                    type?: import("../../../../../../community.js").InstallationType;
                    location?: string;
                    upgradeStrategy?: import("../../../../../devvit/dev_portal/installation/installation.js").UpgradeStrategy;
                    upgradeStrategyConfig?: {
                        [x: string]: any;
                    } | undefined;
                }): InstallationCreationRequest;
            };
            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("../../../../../devvit/dev_portal/installation/installation.js").UpgradeStrategy;
                        upgradeStrategyConfig?: {
                            [x: string]: any;
                        } | undefined;
                        runAs?: string | undefined | undefined;
                        type?: import("../../../../../../community.js").InstallationType;
                        location?: {
                            id?: string;
                            name?: string;
                            type?: import("../../../../../../community.js").ThingType;
                            icon?: string | undefined | undefined;
                            isNsfw?: boolean;
                            isUnavailable?: boolean;
                        } | undefined;
                        isEnabled?: boolean;
                        developerPermissions?: import("../../../../../devvit/dev_portal/installation/installation.js").DeveloperPermissions;
                    } | undefined;
                    appVersion?: {
                        id?: string;
                        visibility?: import("../../../../../../community.js").VersionVisibility;
                        validInstallTypes?: import("../../../../../../community.js").InstallationType[];
                        majorVersion?: number;
                        minorVersion?: number;
                        patchVersion?: number;
                        prereleaseVersion?: number | undefined | undefined;
                        uploadedAt?: Date | undefined;
                        buildStatus?: import("../../../../../../community.js").BuildStatus;
                        builtAt?: Date | undefined;
                        about?: string;
                        hasCustomSettings?: boolean;
                        pool?: import("../../../../../../community.js").ComputePool;
                        appCapabilities?: import("../../../../../../community.js").NutritionCategory[];
                        publicApiVersion?: string | undefined | undefined;
                        marketingInfo?: {
                            icon?: string | undefined | undefined;
                        } | undefined;
                        hasDevvitJson?: boolean;
                    } | 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("../../../../../../community.js").Categories[];
                        stats?: {
                            installCount?: number;
                            versionsCount?: number;
                        } | undefined;
                        termsAndConditions?: string;
                        privacyPolicy?: string;
                        defaultPool?: import("../../../../../../community.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;
                        }[];
                    } | undefined;
                }): FullInstallationInfo;
                fromPartial(object: {
                    installation?: {
                        id?: string;
                        upgradeStrategy?: import("../../../../../devvit/dev_portal/installation/installation.js").UpgradeStrategy;
                        upgradeStrategyConfig?: {
                            [x: string]: any;
                        } | undefined;
                        runAs?: string | undefined | undefined;
                        type?: import("../../../../../../community.js").InstallationType;
                        location?: {
                            id?: string;
                            name?: string;
                            type?: import("../../../../../../community.js").ThingType;
                            icon?: string | undefined | undefined;
                            isNsfw?: boolean;
                            isUnavailable?: boolean;
                        } | undefined;
                        isEnabled?: boolean;
                        developerPermissions?: import("../../../../../devvit/dev_portal/installation/installation.js").DeveloperPermissions;
                    } | undefined;
                    appVersion?: {
                        id?: string;
                        visibility?: import("../../../../../../community.js").VersionVisibility;
                        validInstallTypes?: import("../../../../../../community.js").InstallationType[];
                        majorVersion?: number;
                        minorVersion?: number;
                        patchVersion?: number;
                        prereleaseVersion?: number | undefined | undefined;
                        uploadedAt?: Date | undefined;
                        buildStatus?: import("../../../../../../community.js").BuildStatus;
                        builtAt?: Date | undefined;
                        about?: string;
                        hasCustomSettings?: boolean;
                        pool?: import("../../../../../../community.js").ComputePool;
                        appCapabilities?: import("../../../../../../community.js").NutritionCategory[];
                        publicApiVersion?: string | undefined | undefined;
                        marketingInfo?: {
                            icon?: string | undefined | undefined;
                        } | undefined;
                        hasDevvitJson?: boolean;
                    } | 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("../../../../../../community.js").Categories[];
                        stats?: {
                            installCount?: number;
                            versionsCount?: number;
                        } | undefined;
                        termsAndConditions?: string;
                        privacyPolicy?: string;
                        defaultPool?: import("../../../../../../community.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;
                        }[];
                    } | undefined;
                }): FullInstallationInfo;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly getByAppNameAndInstallLocation: {
            readonly name: "GetByAppNameAndInstallLocation";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.GetByAppNameAndInstallLocationRequest";
                encode(message: GetByAppNameAndInstallLocationRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): GetByAppNameAndInstallLocationRequest;
                fromJSON(object: any): GetByAppNameAndInstallLocationRequest;
                toJSON(message: GetByAppNameAndInstallLocationRequest): unknown;
                create(base?: {
                    slug?: string;
                    type?: import("../../../../../../community.js").InstallationType;
                    location?: string;
                }): GetByAppNameAndInstallLocationRequest;
                fromPartial(object: {
                    slug?: string;
                    type?: import("../../../../../../community.js").InstallationType;
                    location?: string;
                }): GetByAppNameAndInstallLocationRequest;
            };
            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("../../../../../devvit/dev_portal/installation/installation.js").UpgradeStrategy;
                        upgradeStrategyConfig?: {
                            [x: string]: any;
                        } | undefined;
                        runAs?: string | undefined | undefined;
                        type?: import("../../../../../../community.js").InstallationType;
                        location?: {
                            id?: string;
                            name?: string;
                            type?: import("../../../../../../community.js").ThingType;
                            icon?: string | undefined | undefined;
                            isNsfw?: boolean;
                            isUnavailable?: boolean;
                        } | undefined;
                        isEnabled?: boolean;
                        developerPermissions?: import("../../../../../devvit/dev_portal/installation/installation.js").DeveloperPermissions;
                    } | undefined;
                    appVersion?: {
                        id?: string;
                        visibility?: import("../../../../../../community.js").VersionVisibility;
                        validInstallTypes?: import("../../../../../../community.js").InstallationType[];
                        majorVersion?: number;
                        minorVersion?: number;
                        patchVersion?: number;
                        prereleaseVersion?: number | undefined | undefined;
                        uploadedAt?: Date | undefined;
                        buildStatus?: import("../../../../../../community.js").BuildStatus;
                        builtAt?: Date | undefined;
                        about?: string;
                        hasCustomSettings?: boolean;
                        pool?: import("../../../../../../community.js").ComputePool;
                        appCapabilities?: import("../../../../../../community.js").NutritionCategory[];
                        publicApiVersion?: string | undefined | undefined;
                        marketingInfo?: {
                            icon?: string | undefined | undefined;
                        } | undefined;
                        hasDevvitJson?: boolean;
                    } | 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("../../../../../../community.js").Categories[];
                        stats?: {
                            installCount?: number;
                            versionsCount?: number;
                        } | undefined;
                        termsAndConditions?: string;
                        privacyPolicy?: string;
                        defaultPool?: import("../../../../../../community.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;
                        }[];
                    } | undefined;
                }): FullInstallationInfo;
                fromPartial(object: {
                    installation?: {
                        id?: string;
                        upgradeStrategy?: import("../../../../../devvit/dev_portal/installation/installation.js").UpgradeStrategy;
                        upgradeStrategyConfig?: {
                            [x: string]: any;
                        } | undefined;
                        runAs?: string | undefined | undefined;
                        type?: import("../../../../../../community.js").InstallationType;
                        location?: {
                            id?: string;
                            name?: string;
                            type?: import("../../../../../../community.js").ThingType;
                            icon?: string | undefined | undefined;
                            isNsfw?: boolean;
                            isUnavailable?: boolean;
                        } | undefined;
                        isEnabled?: boolean;
                        developerPermissions?: import("../../../../../devvit/dev_portal/installation/installation.js").DeveloperPermissions;
                    } | undefined;
                    appVersion?: {
                        id?: string;
                        visibility?: import("../../../../../../community.js").VersionVisibility;
                        validInstallTypes?: import("../../../../../../community.js").InstallationType[];
                        majorVersion?: number;
                        minorVersion?: number;
                        patchVersion?: number;
                        prereleaseVersion?: number | undefined | undefined;
                        uploadedAt?: Date | undefined;
                        buildStatus?: import("../../../../../../community.js").BuildStatus;
                        builtAt?: Date | undefined;
                        about?: string;
                        hasCustomSettings?: boolean;
                        pool?: import("../../../../../../community.js").ComputePool;
                        appCapabilities?: import("../../../../../../community.js").NutritionCategory[];
                        publicApiVersion?: string | undefined | undefined;
                        marketingInfo?: {
                            icon?: string | undefined | undefined;
                        } | undefined;
                        hasDevvitJson?: boolean;
                    } | 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("../../../../../../community.js").Categories[];
                        stats?: {
                            installCount?: number;
                            versionsCount?: number;
                        } | undefined;
                        termsAndConditions?: string;
                        privacyPolicy?: string;
                        defaultPool?: import("../../../../../../community.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;
                        }[];
                    } | undefined;
                }): FullInstallationInfo;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
interface Rpc {
    request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
}
export {};
//# sourceMappingURL=installation.d.ts.map