import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { private_minus_user } from "../../structures/private_minus_user";
import { public_minus_user } from "../../structures/public_minus_user";
import { body } from "../../structures/body";
import { IApiUser } from "../../structures/IApiUser";
export * as blocks from "./blocks";
export * as codespaces from "./codespaces";
export * as docker from "./docker";
export * as email from "./email";
export * as emails from "./emails";
export * as followers from "./followers";
export * as following from "./following";
export * as gpg_keys from "./gpg_keys";
export * as installations from "./installations";
export * as interaction_limits from "./interaction_limits";
export * as issues from "./issues";
export * as keys from "./keys";
export * as marketplace_purchases from "./marketplace_purchases";
export * as memberships from "./memberships";
export * as migrations from "./migrations";
export * as orgs from "./orgs";
export * as packages from "./packages";
export * as projects from "./projects";
export * as public_emails from "./public_emails";
export * as repos from "./repos";
export * as repository_invitations from "./repository_invitations";
export * as social_accounts from "./social_accounts";
export * as ssh_signing_keys from "./ssh_signing_keys";
export * as starred from "./starred";
export * as subscriptions from "./subscriptions";
export * as teams from "./teams";
/**
 * Get the authenticated user.
 * OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information.
 *
 * @tag users
 * @path user
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function get(connection: IConnection): Promise<get.Output>;
export declare namespace get {
    type Output = private_minus_user | public_minus_user;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/user";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: () => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => private_minus_user | public_minus_user;
    const simulate: (connection: IConnection) => Output;
}
/**
 * Update the authenticated user.
 * **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.
 *
 * @tag users
 * @path user
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function patch(connection: IConnection, body: patch.Input): Promise<patch.Output>;
export declare namespace patch {
    type Input = body;
    type Output = private_minus_user;
    const METADATA: {
        readonly method: "PATCH";
        readonly path: "/user";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: () => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => private_minus_user;
    const simulate: (connection: IConnection, body: patch.Input) => Output;
}
/**
 * Get a user using their ID.
 * Provides publicly available information about someone with a GitHub account. This method takes their durable user `ID` instead of their `login`, which can change over time.
 *
 * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#authentication).
 *
 * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://docs.github.com/rest/users/emails)".
 *
 * @tag users
 * @path user/:account_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByAccount_id(connection: IConnection<getByAccount_id.Headers>, account_id: string): Promise<getByAccount_id.Output>;
export declare namespace getByAccount_id {
    type Headers = IApiUser.GetHeader;
    type Output = private_minus_user | public_minus_user;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/user/:account_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (account_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => private_minus_user | public_minus_user;
    const simulate: (connection: IConnection<getByAccount_id.Headers>, account_id: string) => Output;
}
