import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiApplicationsToken } from "../../../structures/IApiApplicationsToken";
import { body } from "../../../structures/body";
import { authorization } from "../../../structures/authorization";
export * as scoped from "./scoped";
/**
 * Check a token.
 * OAuth applications and GitHub applications with OAuth authorizations can use this API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. Invalid tokens will return `404 NOT FOUND`.
 *
 * @tag apps
 * @path applications/:client_id/token
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByClient_id(connection: IConnection<postByClient_id.Headers>, client_id: string, body: postByClient_id.Input): Promise<postByClient_id.Output>;
export declare namespace postByClient_id {
    type Headers = IApiApplicationsToken.PostHeader;
    type Input = body;
    type Output = authorization;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/applications/:client_id/token";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (client_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => authorization;
    const simulate: (connection: IConnection<postByClient_id.Headers>, client_id: string, body: postByClient_id.Input) => Output;
}
/**
 * Reset a token.
 * OAuth applications and GitHub applications with OAuth authorizations can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. Invalid tokens will return `404 NOT FOUND`.
 *
 * @tag apps
 * @path applications/:client_id/token
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function patchByClient_id(connection: IConnection<patchByClient_id.Headers>, client_id: string, body: patchByClient_id.Input): Promise<patchByClient_id.Output>;
export declare namespace patchByClient_id {
    type Headers = IApiApplicationsToken.PatchHeader;
    type Input = body;
    type Output = authorization;
    const METADATA: {
        readonly method: "PATCH";
        readonly path: "/applications/:client_id/token";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (client_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => authorization;
    const simulate: (connection: IConnection<patchByClient_id.Headers>, client_id: string, body: patchByClient_id.Input) => Output;
}
/**
 * Delete an app token.
 * OAuth  or GitHub application owners can revoke a single token for an OAuth application or a GitHub application with an OAuth authorization.
 *
 * @tag apps
 * @path applications/:client_id/token
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByClient_id(connection: IConnection<eraseByClient_id.Headers>, client_id: string, body: eraseByClient_id.Input): Promise<void>;
export declare namespace eraseByClient_id {
    type Headers = IApiApplicationsToken.DeleteHeader;
    type Input = body;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/applications/:client_id/token";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (client_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByClient_id.Headers>, client_id: string, body: eraseByClient_id.Input) => void;
}
