import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiOrgsHooks } from "../../../structures/IApiOrgsHooks";
import { org_minus_hook } from "../../../structures/org_minus_hook";
import { body } from "../../../structures/body";
export * as config from "./config";
export * as deliveries from "./deliveries";
export * as pings from "./pings";
/**
 * List organization webhooks.
 * You must be an organization owner to use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit
 * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.
 *
 * @tag orgs
 * @path orgs/:org/hooks
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOrg(connection: IConnection<getByOrg.Headers>, org: string): Promise<getByOrg.Output>;
export declare namespace getByOrg {
    type Headers = IApiOrgsHooks.GetHeader;
    type Output = org_minus_hook[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/hooks";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => org_minus_hook[];
    const simulate: (connection: IConnection<getByOrg.Headers>, org: string) => Output;
}
/**
 * Create an organization webhook.
 * Create a hook that posts payloads in JSON format.
 *
 * You must be an organization owner to use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or
 * edit webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.
 *
 * @tag orgs
 * @path orgs/:org/hooks
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByOrg(connection: IConnection<postByOrg.Headers>, org: string, body: postByOrg.Input): Promise<postByOrg.Output>;
export declare namespace postByOrg {
    type Headers = IApiOrgsHooks.PostHeader;
    type Input = body;
    type Output = org_minus_hook;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/orgs/:org/hooks";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => org_minus_hook;
    const simulate: (connection: IConnection<postByOrg.Headers>, org: string, body: postByOrg.Input) => Output;
}
/**
 * Get an organization webhook.
 * Returns a webhook configured in an organization. To get only the webhook
 * `config` properties, see "[Get a webhook configuration for an organization](/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization).
 *
 * You must be an organization owner to use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit
 * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.
 *
 * @tag orgs
 * @path orgs/:org/hooks/:hook_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOrgAndHook_id(connection: IConnection<getByOrgAndHook_id.Headers>, org: string, hook_id: string): Promise<getByOrgAndHook_id.Output>;
export declare namespace getByOrgAndHook_id {
    type Headers = IApiOrgsHooks.GetHeader;
    type Output = org_minus_hook;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/hooks/:hook_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, hook_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => org_minus_hook;
    const simulate: (connection: IConnection<getByOrgAndHook_id.Headers>, org: string, hook_id: string) => Output;
}
/**
 * Update an organization webhook.
 * Updates a webhook configured in an organization. When you update a webhook,
 * the `secret` will be overwritten. If you previously had a `secret` set, you must
 * provide the same `secret` or set a new `secret` or the secret will be removed. If
 * you are only updating individual webhook `config` properties, use "[Update a webhook
 * configuration for an organization](/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization)".
 *
 * You must be an organization owner to use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit
 * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.
 *
 * @tag orgs
 * @path orgs/:org/hooks/:hook_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function patchByOrgAndHook_id(connection: IConnection<patchByOrgAndHook_id.Headers>, org: string, hook_id: string, body: patchByOrgAndHook_id.Input): Promise<patchByOrgAndHook_id.Output>;
export declare namespace patchByOrgAndHook_id {
    type Headers = IApiOrgsHooks.PatchHeader;
    type Input = body;
    type Output = org_minus_hook;
    const METADATA: {
        readonly method: "PATCH";
        readonly path: "/orgs/:org/hooks/:hook_id";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, hook_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => org_minus_hook;
    const simulate: (connection: IConnection<patchByOrgAndHook_id.Headers>, org: string, hook_id: string, body: patchByOrgAndHook_id.Input) => Output;
}
/**
 * Delete an organization webhook.
 * You must be an organization owner to use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need `admin:org_hook` scope. OAuth apps cannot list, view, or edit
 * webhooks that they did not create and users cannot list, view, or edit webhooks that were created by OAuth apps.
 *
 * @tag orgs
 * @path orgs/:org/hooks/:hook_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOrgAndHook_id(connection: IConnection<eraseByOrgAndHook_id.Headers>, org: string, hook_id: string): Promise<void>;
export declare namespace eraseByOrgAndHook_id {
    type Headers = IApiOrgsHooks.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/orgs/:org/hooks/:hook_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, hook_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOrgAndHook_id.Headers>, org: string, hook_id: string) => void;
}
