import Long from "long";
import { type CallContext, type CallOptions } from "nice-grpc-common";
import _m0 from "protobufjs/minimal";
import { Details as Details1 } from "../../../settings/object/v3alpha/object";
import { Details } from "../../object/v3alpha/object";
import { Condition, Execution } from "./execution";
import { PatchTarget, Target } from "./target";
export declare const protobufPackage = "zitadel.resources.action.v3alpha";
export interface CreateTargetRequest {
    target: Target | undefined;
}
export interface CreateTargetResponse {
    details: Details | undefined;
}
export interface PatchTargetRequest {
    id: string;
    target: PatchTarget | undefined;
}
export interface PatchTargetResponse {
    details: Details | undefined;
}
export interface DeleteTargetRequest {
    id: string;
}
export interface DeleteTargetResponse {
    details: Details | undefined;
}
export interface SetExecutionRequest {
    condition: Condition | undefined;
    execution: Execution | undefined;
}
export interface SetExecutionResponse {
    details: Details1 | undefined;
}
export interface ListExecutionFunctionsRequest {
}
export interface ListExecutionFunctionsResponse {
    /** All available methods */
    functions: string[];
}
export interface ListExecutionMethodsRequest {
}
export interface ListExecutionMethodsResponse {
    /** All available methods */
    methods: string[];
}
export interface ListExecutionServicesRequest {
}
export interface ListExecutionServicesResponse {
    /** All available methods */
    services: string[];
}
export declare const CreateTargetRequest: {
    encode(message: CreateTargetRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTargetRequest;
    fromJSON(object: any): CreateTargetRequest;
    toJSON(message: CreateTargetRequest): unknown;
    create(base?: DeepPartial<CreateTargetRequest>): CreateTargetRequest;
    fromPartial(object: DeepPartial<CreateTargetRequest>): CreateTargetRequest;
};
export declare const CreateTargetResponse: {
    encode(message: CreateTargetResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTargetResponse;
    fromJSON(object: any): CreateTargetResponse;
    toJSON(message: CreateTargetResponse): unknown;
    create(base?: DeepPartial<CreateTargetResponse>): CreateTargetResponse;
    fromPartial(object: DeepPartial<CreateTargetResponse>): CreateTargetResponse;
};
export declare const PatchTargetRequest: {
    encode(message: PatchTargetRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PatchTargetRequest;
    fromJSON(object: any): PatchTargetRequest;
    toJSON(message: PatchTargetRequest): unknown;
    create(base?: DeepPartial<PatchTargetRequest>): PatchTargetRequest;
    fromPartial(object: DeepPartial<PatchTargetRequest>): PatchTargetRequest;
};
export declare const PatchTargetResponse: {
    encode(message: PatchTargetResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PatchTargetResponse;
    fromJSON(object: any): PatchTargetResponse;
    toJSON(message: PatchTargetResponse): unknown;
    create(base?: DeepPartial<PatchTargetResponse>): PatchTargetResponse;
    fromPartial(object: DeepPartial<PatchTargetResponse>): PatchTargetResponse;
};
export declare const DeleteTargetRequest: {
    encode(message: DeleteTargetRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTargetRequest;
    fromJSON(object: any): DeleteTargetRequest;
    toJSON(message: DeleteTargetRequest): unknown;
    create(base?: DeepPartial<DeleteTargetRequest>): DeleteTargetRequest;
    fromPartial(object: DeepPartial<DeleteTargetRequest>): DeleteTargetRequest;
};
export declare const DeleteTargetResponse: {
    encode(message: DeleteTargetResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTargetResponse;
    fromJSON(object: any): DeleteTargetResponse;
    toJSON(message: DeleteTargetResponse): unknown;
    create(base?: DeepPartial<DeleteTargetResponse>): DeleteTargetResponse;
    fromPartial(object: DeepPartial<DeleteTargetResponse>): DeleteTargetResponse;
};
export declare const SetExecutionRequest: {
    encode(message: SetExecutionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetExecutionRequest;
    fromJSON(object: any): SetExecutionRequest;
    toJSON(message: SetExecutionRequest): unknown;
    create(base?: DeepPartial<SetExecutionRequest>): SetExecutionRequest;
    fromPartial(object: DeepPartial<SetExecutionRequest>): SetExecutionRequest;
};
export declare const SetExecutionResponse: {
    encode(message: SetExecutionResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetExecutionResponse;
    fromJSON(object: any): SetExecutionResponse;
    toJSON(message: SetExecutionResponse): unknown;
    create(base?: DeepPartial<SetExecutionResponse>): SetExecutionResponse;
    fromPartial(object: DeepPartial<SetExecutionResponse>): SetExecutionResponse;
};
export declare const ListExecutionFunctionsRequest: {
    encode(_: ListExecutionFunctionsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionFunctionsRequest;
    fromJSON(_: any): ListExecutionFunctionsRequest;
    toJSON(_: ListExecutionFunctionsRequest): unknown;
    create(base?: DeepPartial<ListExecutionFunctionsRequest>): ListExecutionFunctionsRequest;
    fromPartial(_: DeepPartial<ListExecutionFunctionsRequest>): ListExecutionFunctionsRequest;
};
export declare const ListExecutionFunctionsResponse: {
    encode(message: ListExecutionFunctionsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionFunctionsResponse;
    fromJSON(object: any): ListExecutionFunctionsResponse;
    toJSON(message: ListExecutionFunctionsResponse): unknown;
    create(base?: DeepPartial<ListExecutionFunctionsResponse>): ListExecutionFunctionsResponse;
    fromPartial(object: DeepPartial<ListExecutionFunctionsResponse>): ListExecutionFunctionsResponse;
};
export declare const ListExecutionMethodsRequest: {
    encode(_: ListExecutionMethodsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionMethodsRequest;
    fromJSON(_: any): ListExecutionMethodsRequest;
    toJSON(_: ListExecutionMethodsRequest): unknown;
    create(base?: DeepPartial<ListExecutionMethodsRequest>): ListExecutionMethodsRequest;
    fromPartial(_: DeepPartial<ListExecutionMethodsRequest>): ListExecutionMethodsRequest;
};
export declare const ListExecutionMethodsResponse: {
    encode(message: ListExecutionMethodsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionMethodsResponse;
    fromJSON(object: any): ListExecutionMethodsResponse;
    toJSON(message: ListExecutionMethodsResponse): unknown;
    create(base?: DeepPartial<ListExecutionMethodsResponse>): ListExecutionMethodsResponse;
    fromPartial(object: DeepPartial<ListExecutionMethodsResponse>): ListExecutionMethodsResponse;
};
export declare const ListExecutionServicesRequest: {
    encode(_: ListExecutionServicesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionServicesRequest;
    fromJSON(_: any): ListExecutionServicesRequest;
    toJSON(_: ListExecutionServicesRequest): unknown;
    create(base?: DeepPartial<ListExecutionServicesRequest>): ListExecutionServicesRequest;
    fromPartial(_: DeepPartial<ListExecutionServicesRequest>): ListExecutionServicesRequest;
};
export declare const ListExecutionServicesResponse: {
    encode(message: ListExecutionServicesResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionServicesResponse;
    fromJSON(object: any): ListExecutionServicesResponse;
    toJSON(message: ListExecutionServicesResponse): unknown;
    create(base?: DeepPartial<ListExecutionServicesResponse>): ListExecutionServicesResponse;
    fromPartial(object: DeepPartial<ListExecutionServicesResponse>): ListExecutionServicesResponse;
};
export type ZITADELActionsDefinition = typeof ZITADELActionsDefinition;
export declare const ZITADELActionsDefinition: {
    readonly name: "ZITADELActions";
    readonly fullName: "zitadel.resources.action.v3alpha.ZITADELActions";
    readonly methods: {
        /**
         * Create a target
         *
         * Create a new target, which can be used in executions.
         */
        readonly createTarget: {
            readonly name: "CreateTarget";
            readonly requestType: {
                encode(message: CreateTargetRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): CreateTargetRequest;
                fromJSON(object: any): CreateTargetRequest;
                toJSON(message: CreateTargetRequest): unknown;
                create(base?: DeepPartial<CreateTargetRequest>): CreateTargetRequest;
                fromPartial(object: DeepPartial<CreateTargetRequest>): CreateTargetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: CreateTargetResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): CreateTargetResponse;
                fromJSON(object: any): CreateTargetResponse;
                toJSON(message: CreateTargetResponse): unknown;
                create(base?: DeepPartial<CreateTargetResponse>): CreateTargetResponse;
                fromPartial(object: DeepPartial<CreateTargetResponse>): CreateTargetResponse;
            };
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 8338: readonly [Buffer];
                    readonly 400010: readonly [Buffer];
                    readonly 578365826: readonly [Buffer];
                };
            };
        };
        /**
         * Patch a target
         *
         * Patch an existing target.
         */
        readonly patchTarget: {
            readonly name: "PatchTarget";
            readonly requestType: {
                encode(message: PatchTargetRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): PatchTargetRequest;
                fromJSON(object: any): PatchTargetRequest;
                toJSON(message: PatchTargetRequest): unknown;
                create(base?: DeepPartial<PatchTargetRequest>): PatchTargetRequest;
                fromPartial(object: DeepPartial<PatchTargetRequest>): PatchTargetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: PatchTargetResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): PatchTargetResponse;
                fromJSON(object: any): PatchTargetResponse;
                toJSON(message: PatchTargetResponse): unknown;
                create(base?: DeepPartial<PatchTargetResponse>): PatchTargetResponse;
                fromPartial(object: DeepPartial<PatchTargetResponse>): PatchTargetResponse;
            };
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 8338: readonly [Buffer];
                    readonly 400010: readonly [Buffer];
                    readonly 578365826: readonly [Buffer];
                };
            };
        };
        /**
         * Delete a target
         *
         * Delete an existing target. This will remove it from any configured execution as well.
         */
        readonly deleteTarget: {
            readonly name: "DeleteTarget";
            readonly requestType: {
                encode(message: DeleteTargetRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTargetRequest;
                fromJSON(object: any): DeleteTargetRequest;
                toJSON(message: DeleteTargetRequest): unknown;
                create(base?: DeepPartial<DeleteTargetRequest>): DeleteTargetRequest;
                fromPartial(object: DeepPartial<DeleteTargetRequest>): DeleteTargetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: DeleteTargetResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTargetResponse;
                fromJSON(object: any): DeleteTargetResponse;
                toJSON(message: DeleteTargetResponse): unknown;
                create(base?: DeepPartial<DeleteTargetResponse>): DeleteTargetResponse;
                fromPartial(object: DeepPartial<DeleteTargetResponse>): DeleteTargetResponse;
            };
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 8338: readonly [Buffer];
                    readonly 400010: readonly [Buffer];
                    readonly 578365826: readonly [Buffer];
                };
            };
        };
        /**
         * Sets an execution to call a target or include the targets of another execution.
         *
         * Setting an empty list of targets will remove all targets from the execution, making it a noop.
         */
        readonly setExecution: {
            readonly name: "SetExecution";
            readonly requestType: {
                encode(message: SetExecutionRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): SetExecutionRequest;
                fromJSON(object: any): SetExecutionRequest;
                toJSON(message: SetExecutionRequest): unknown;
                create(base?: DeepPartial<SetExecutionRequest>): SetExecutionRequest;
                fromPartial(object: DeepPartial<SetExecutionRequest>): SetExecutionRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: SetExecutionResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): SetExecutionResponse;
                fromJSON(object: any): SetExecutionResponse;
                toJSON(message: SetExecutionResponse): unknown;
                create(base?: DeepPartial<SetExecutionResponse>): SetExecutionResponse;
                fromPartial(object: DeepPartial<SetExecutionResponse>): SetExecutionResponse;
            };
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 8338: readonly [Buffer];
                    readonly 400010: readonly [Buffer];
                    readonly 578365826: readonly [Buffer];
                };
            };
        };
        /**
         * List all available functions
         *
         * List all available functions which can be used as condition for executions.
         */
        readonly listExecutionFunctions: {
            readonly name: "ListExecutionFunctions";
            readonly requestType: {
                encode(_: ListExecutionFunctionsRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionFunctionsRequest;
                fromJSON(_: any): ListExecutionFunctionsRequest;
                toJSON(_: ListExecutionFunctionsRequest): unknown;
                create(base?: DeepPartial<ListExecutionFunctionsRequest>): ListExecutionFunctionsRequest;
                fromPartial(_: DeepPartial<ListExecutionFunctionsRequest>): ListExecutionFunctionsRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: ListExecutionFunctionsResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionFunctionsResponse;
                fromJSON(object: any): ListExecutionFunctionsResponse;
                toJSON(message: ListExecutionFunctionsResponse): unknown;
                create(base?: DeepPartial<ListExecutionFunctionsResponse>): ListExecutionFunctionsResponse;
                fromPartial(object: DeepPartial<ListExecutionFunctionsResponse>): ListExecutionFunctionsResponse;
            };
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 8338: readonly [Buffer];
                    readonly 400010: readonly [Buffer];
                    readonly 578365826: readonly [Buffer];
                };
            };
        };
        /**
         * List all available methods
         *
         * List all available methods which can be used as condition for executions.
         */
        readonly listExecutionMethods: {
            readonly name: "ListExecutionMethods";
            readonly requestType: {
                encode(_: ListExecutionMethodsRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionMethodsRequest;
                fromJSON(_: any): ListExecutionMethodsRequest;
                toJSON(_: ListExecutionMethodsRequest): unknown;
                create(base?: DeepPartial<ListExecutionMethodsRequest>): ListExecutionMethodsRequest;
                fromPartial(_: DeepPartial<ListExecutionMethodsRequest>): ListExecutionMethodsRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: ListExecutionMethodsResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionMethodsResponse;
                fromJSON(object: any): ListExecutionMethodsResponse;
                toJSON(message: ListExecutionMethodsResponse): unknown;
                create(base?: DeepPartial<ListExecutionMethodsResponse>): ListExecutionMethodsResponse;
                fromPartial(object: DeepPartial<ListExecutionMethodsResponse>): ListExecutionMethodsResponse;
            };
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 8338: readonly [Buffer];
                    readonly 400010: readonly [Buffer];
                    readonly 578365826: readonly [Buffer];
                };
            };
        };
        /**
         * List all available service
         *
         * List all available services which can be used as condition for executions.
         */
        readonly listExecutionServices: {
            readonly name: "ListExecutionServices";
            readonly requestType: {
                encode(_: ListExecutionServicesRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionServicesRequest;
                fromJSON(_: any): ListExecutionServicesRequest;
                toJSON(_: ListExecutionServicesRequest): unknown;
                create(base?: DeepPartial<ListExecutionServicesRequest>): ListExecutionServicesRequest;
                fromPartial(_: DeepPartial<ListExecutionServicesRequest>): ListExecutionServicesRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                encode(message: ListExecutionServicesResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ListExecutionServicesResponse;
                fromJSON(object: any): ListExecutionServicesResponse;
                toJSON(message: ListExecutionServicesResponse): unknown;
                create(base?: DeepPartial<ListExecutionServicesResponse>): ListExecutionServicesResponse;
                fromPartial(object: DeepPartial<ListExecutionServicesResponse>): ListExecutionServicesResponse;
            };
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 8338: readonly [Buffer];
                    readonly 400010: readonly [Buffer];
                    readonly 578365826: readonly [Buffer];
                };
            };
        };
    };
};
export interface ZITADELActionsServiceImplementation<CallContextExt = {}> {
    /**
     * Create a target
     *
     * Create a new target, which can be used in executions.
     */
    createTarget(request: CreateTargetRequest, context: CallContext & CallContextExt): Promise<DeepPartial<CreateTargetResponse>>;
    /**
     * Patch a target
     *
     * Patch an existing target.
     */
    patchTarget(request: PatchTargetRequest, context: CallContext & CallContextExt): Promise<DeepPartial<PatchTargetResponse>>;
    /**
     * Delete a target
     *
     * Delete an existing target. This will remove it from any configured execution as well.
     */
    deleteTarget(request: DeleteTargetRequest, context: CallContext & CallContextExt): Promise<DeepPartial<DeleteTargetResponse>>;
    /**
     * Sets an execution to call a target or include the targets of another execution.
     *
     * Setting an empty list of targets will remove all targets from the execution, making it a noop.
     */
    setExecution(request: SetExecutionRequest, context: CallContext & CallContextExt): Promise<DeepPartial<SetExecutionResponse>>;
    /**
     * List all available functions
     *
     * List all available functions which can be used as condition for executions.
     */
    listExecutionFunctions(request: ListExecutionFunctionsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ListExecutionFunctionsResponse>>;
    /**
     * List all available methods
     *
     * List all available methods which can be used as condition for executions.
     */
    listExecutionMethods(request: ListExecutionMethodsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ListExecutionMethodsResponse>>;
    /**
     * List all available service
     *
     * List all available services which can be used as condition for executions.
     */
    listExecutionServices(request: ListExecutionServicesRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ListExecutionServicesResponse>>;
}
export interface ZITADELActionsClient<CallOptionsExt = {}> {
    /**
     * Create a target
     *
     * Create a new target, which can be used in executions.
     */
    createTarget(request: DeepPartial<CreateTargetRequest>, options?: CallOptions & CallOptionsExt): Promise<CreateTargetResponse>;
    /**
     * Patch a target
     *
     * Patch an existing target.
     */
    patchTarget(request: DeepPartial<PatchTargetRequest>, options?: CallOptions & CallOptionsExt): Promise<PatchTargetResponse>;
    /**
     * Delete a target
     *
     * Delete an existing target. This will remove it from any configured execution as well.
     */
    deleteTarget(request: DeepPartial<DeleteTargetRequest>, options?: CallOptions & CallOptionsExt): Promise<DeleteTargetResponse>;
    /**
     * Sets an execution to call a target or include the targets of another execution.
     *
     * Setting an empty list of targets will remove all targets from the execution, making it a noop.
     */
    setExecution(request: DeepPartial<SetExecutionRequest>, options?: CallOptions & CallOptionsExt): Promise<SetExecutionResponse>;
    /**
     * List all available functions
     *
     * List all available functions which can be used as condition for executions.
     */
    listExecutionFunctions(request: DeepPartial<ListExecutionFunctionsRequest>, options?: CallOptions & CallOptionsExt): Promise<ListExecutionFunctionsResponse>;
    /**
     * List all available methods
     *
     * List all available methods which can be used as condition for executions.
     */
    listExecutionMethods(request: DeepPartial<ListExecutionMethodsRequest>, options?: CallOptions & CallOptionsExt): Promise<ListExecutionMethodsResponse>;
    /**
     * List all available service
     *
     * List all available services which can be used as condition for executions.
     */
    listExecutionServices(request: DeepPartial<ListExecutionServicesRequest>, options?: CallOptions & CallOptionsExt): Promise<ListExecutionServicesResponse>;
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Long ? string | number | Long : 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 {};
