/**
 * #triggers_v2.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 { InstallationInfo } from "../../dev_portal/installation/installation.js";
/**
 * These methods are a subset of the existing Triggers service
 * (https://github.snooguts.net/reddit/reddit-devplatform-monorepo/blob/main/packages/protos/schema/devvit/gateway/v1alpha/triggers.proto),
 * for use by the DevPortal.
 * NOTE!!! The overlapping methods NEED to remain identical to the original service. !!!
 */
export interface TriggersV2 {
    OnInstall(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
    OnInstallChanged(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
    OnUninstall(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
    OnInstallSettingsChanged(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
}
export declare const TriggersV2ServiceName = "devvit.gateway.v1alpha.TriggersV2";
export declare class TriggersV2ClientImpl implements TriggersV2 {
    private readonly rpc;
    private readonly service;
    constructor(rpc: Rpc, opts?: {
        service?: string;
    });
    OnInstall(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
    OnInstallChanged(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
    OnUninstall(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
    OnInstallSettingsChanged(request: InstallationInfo, metadata?: Metadata): Promise<Empty>;
}
/**
 * These methods are a subset of the existing Triggers service
 * (https://github.snooguts.net/reddit/reddit-devplatform-monorepo/blob/main/packages/protos/schema/devvit/gateway/v1alpha/triggers.proto),
 * for use by the DevPortal.
 * NOTE!!! The overlapping methods NEED to remain identical to the original service. !!!
 */
export type TriggersV2Definition = typeof TriggersV2Definition;
export declare const TriggersV2Definition: {
    readonly name: "TriggersV2";
    readonly fullName: "devvit.gateway.v1alpha.TriggersV2";
    readonly methods: {
        readonly onInstall: {
            readonly name: "OnInstall";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.InstallationInfo";
                encode(message: InstallationInfo, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationInfo;
                fromJSON(object: any): InstallationInfo;
                toJSON(message: InstallationInfo): unknown;
                create(base?: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
                fromPartial(object: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
            };
            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: {};
        };
        readonly onInstallChanged: {
            readonly name: "OnInstallChanged";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.InstallationInfo";
                encode(message: InstallationInfo, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationInfo;
                fromJSON(object: any): InstallationInfo;
                toJSON(message: InstallationInfo): unknown;
                create(base?: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
                fromPartial(object: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
            };
            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: {};
        };
        readonly onUninstall: {
            readonly name: "OnUninstall";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.InstallationInfo";
                encode(message: InstallationInfo, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationInfo;
                fromJSON(object: any): InstallationInfo;
                toJSON(message: InstallationInfo): unknown;
                create(base?: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
                fromPartial(object: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
            };
            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: {};
        };
        readonly onInstallSettingsChanged: {
            readonly name: "OnInstallSettingsChanged";
            readonly requestType: {
                $type: "devvit.dev_portal.installation.InstallationInfo";
                encode(message: InstallationInfo, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): InstallationInfo;
                fromJSON(object: any): InstallationInfo;
                toJSON(message: InstallationInfo): unknown;
                create(base?: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
                fromPartial(object: {
                    id?: string;
                    upgradeStrategy?: import("../../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("../../reddit/thing_type.js").ThingType;
                        icon?: string | undefined | undefined;
                        isNsfw?: boolean;
                        isUnavailable?: boolean;
                    } | undefined;
                    isEnabled?: boolean;
                    developerPermissions?: import("../../dev_portal/installation/installation.js").DeveloperPermissions;
                }): InstallationInfo;
            };
            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=triggers_v2.d.ts.map