import type { CollectionProp, GetAppActionParams, GetAppActionsForEnvParams, GetAppDefinitionParams, QueryParams } from '../../common-types';
import type { AppActionProps, CreateAppActionProps } from '../../entities/app-action';
import type { OptionalDefaults } from '../wrappers/wrap';
export type AppActionPlainClientAPI = {
    /**
     * Fetches the App Action
     * @param params entity IDs to identify the App Action
     * @returns the App Action
     * @throws if the request fails, or the App Action is not found
     * @example
     * ```javascript
     * const appAction = await client.appAction.get({
     *   organizationId: "<org_id>",
     *   appDefinitionId: "<app_definition_id>",
     *   appActionId: "<app_action_id>",
     * });
     * ```
     */
    get(params: OptionalDefaults<GetAppActionParams>): Promise<AppActionProps>;
    /**
     * Fetches all App Actions for the given App
     * @param params entity IDs to identify the App
     * @returns an object containing an array of App Actions
     * @throws if the request fails, or the App is not found
     * @example
     * ```javascript
     * const appActions = await client.appAction.getMany({
     *   organizationId: "<org_id>",
     *   appDefinitionId: "<app_definition_id>",
     * });
     * ```
     */
    getMany(params: OptionalDefaults<GetAppDefinitionParams & QueryParams>): Promise<CollectionProp<AppActionProps>>;
    /**
     * Fetches all App Actions for the given environment
     * @param params entity IDs to identify the Environment
     * @returns an object containing an array of App Actions
     * @throws if the request fails, or the Environment is not found
     * @example
     * ```javascript
     * const appActions = await client.appAction.getManyForEnvironment({
     *   spaceId: "<space_id>",
     *   environmentId: "<environment_id>",
     * });
     * ```
     */
    getManyForEnvironment(params: OptionalDefaults<GetAppActionsForEnvParams & QueryParams>): Promise<CollectionProp<AppActionProps>>;
    /**
     * Deletes the App Action
     * @param params entity IDs to identify the App Action to delete
     * @returns void
     * @throws if the request fails, or the App Action is not found
     * @example
     * ```javascript
     * await client.appAction.delete({
     *   organizationId: "<org_id>",
     *   appDefinitionId: "<app_definition_id>",
     *   appActionId: "<app_action_id>",
     * });
     * ```
     */
    delete(params: OptionalDefaults<GetAppActionParams>): Promise<void>;
    /**
     * Creates an App Action
     * @param params entity IDs to scope where to create the App Action
     * @param payload the App Action details
     * @returns the created App Action and its metadata
     * @throws if the request fails, an entity is not found, or the payload is malformed
     * @example
     * ```javascript
     * // app action that targets an endpoint url
     * const appAction = await client.appAction.create(
     *   {
     *     organizationId: "<org_id>",
     *     appDefinitionId: "<app_definition_id>",
     *     appActionId: "<app_action_id>",
     *   },
     *   {
     *     category: "Notification.v1.0",
     *     url: "https://www.somewhere-else.com/action",
     *     description: "sends a notification",
     *     name: "My Notification",
     *   }
     * );
     *
     * // app action that invokes a Contentful Function
     * const functionAppAction = await client.appAction.create(
     *  {
     *    organizationId: '<org_id>',
     *    appDefinitionId: '<app_definition_id>',
     *    appActionId: '<app_action_id>',
     *  },
     *  {
     *   type: "function-invocation",
     *   function: {
     *     sys: {
     *       type: "Link",
     *       linkType: "Function",
     *       id: '<function_id>'
     *     }
     *   },
     *   category: "Notification.v1.0",
     *   description: "sends a notification",
     *   name: "Notification (Function Example)",
     * }
     *);
     * ```
     */
    create(params: OptionalDefaults<GetAppDefinitionParams>, payload: CreateAppActionProps): Promise<AppActionProps>;
    /**
     * Updates an App Action
     * @param params entity IDs to identify the App Action
     * @param payload the App Action update
     * @returns the updated App Action and its metadata
     * @throws if the request fails, the App Action is not found, or the payload is malformed
     * @example
     * ```javascript
     * // app action that targets an endpoint url
     * const appAction = await client.appAction.update(
     *   {
     *     organizationId: "<org_id>",
     *     appDefinitionId: "<app_definition_id>",
     *     appActionId: "<app_action_id>",
     *   },
     *   {
     *     category: "Notification.v1.0",
     *     url: "https://www.somewhere-else.com/action",
     *     description: "sends a notification",
     *     name: "My Notification",
     *   }
     * );
     *
     * // app action that invokes a Contentful Function
     * const functionAppAction = await client.appAction.update(
     *  {
     *    organizationId: '<org_id>',
     *    appDefinitionId: '<app_definition_id>',
     *    appActionId: '<app_action_id>',
     *  },
     *  {
     *   type: "function-invocation",
     *   function: {
     *     sys: {
     *       type: "Link",
     *       linkType: "Function",
     *       id: '<function_id>'
     *     }
     *   },
     *   category: "Notification.v1.0",
     *   description: "sends a notification",
     *   name: "Notification (Function Example)",
     * }
     *);
     * ```
     */
    update(params: OptionalDefaults<GetAppActionParams>, payload: CreateAppActionProps): Promise<AppActionProps>;
};
