import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiAppInstallationsAccessTokens } from "../../../../structures/IApiAppInstallationsAccessTokens";
import { body } from "../../../../structures/body";
import { installation_minus_token } from "../../../../structures/installation_minus_token";
/**
 * Create an installation access token for an app.
 * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access.
 *
 * Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. Up to 500 repositories can be listed in this manner.
 *
 * Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted.
 *
 * When using the repository or permission parameters to reduce the access of the token, the complexity of the token is increased due to both the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, the token will fail to be issued. If this occurs, the error message will indicate the maximum number of repositories that should be requested. For the average application requesting 8 permissions, this limit is around 5000 repositories. With fewer permissions requested, more repositories are supported.
 *
 * You must use a [JWT](https://docs.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint.
 *
 * @tag apps
 * @path app/installations/:installation_id/access_tokens
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByInstallation_id(connection: IConnection<postByInstallation_id.Headers>, installation_id: string, body: postByInstallation_id.Input): Promise<postByInstallation_id.Output>;
export declare namespace postByInstallation_id {
    type Headers = IApiAppInstallationsAccessTokens.PostHeader;
    type Input = body;
    type Output = installation_minus_token;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/app/installations/:installation_id/access_tokens";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (installation_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => installation_minus_token;
    const simulate: (connection: IConnection<postByInstallation_id.Headers>, installation_id: string, body: postByInstallation_id.Input) => Output;
}
