import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiGists } from "../../structures/IApiGists";
import { base_minus_gist } from "../../structures/base_minus_gist";
import { body } from "../../structures/body";
import { gist_minus_simple } from "../../structures/gist_minus_simple";
export * as publics from "./public";
export * as starred from "./starred";
export * as comments from "./comments";
export * as commits from "./commits";
export * as forks from "./forks";
export * as star from "./star";
/**
 * List gists for the authenticated user.
 * Lists the authenticated user's gists or if called anonymously, this endpoint returns all public gists:
 *
 * @tag gists
 * @path gists
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function get(connection: IConnection<get.Headers>): Promise<get.Output>;
export declare namespace get {
    type Headers = IApiGists.GetHeader;
    type Output = base_minus_gist[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/gists";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: () => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => base_minus_gist[];
    const simulate: (connection: IConnection<get.Headers>) => Output;
}
/**
 * Create a gist.
 * Allows you to add a new gist with one or more files.
 *
 * > [!NOTE]
 * > Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally.
 *
 * @tag gists
 * @path gists
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function post(connection: IConnection, body: post.Input): Promise<post.Output>;
export declare namespace post {
    type Input = body;
    type Output = gist_minus_simple;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/gists";
        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>) => gist_minus_simple;
    const simulate: (connection: IConnection, body: post.Input) => Output;
}
/**
 * Get a gist.
 * Gets a specified gist.
 *
 * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."
 *
 * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.
 * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.
 *
 * @tag gists
 * @path gists/:gist_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByGist_id(connection: IConnection<getByGist_id.Headers>, gist_id: string): Promise<getByGist_id.Output>;
export declare namespace getByGist_id {
    type Headers = IApiGists.GetHeader;
    type Output = gist_minus_simple;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/gists/:gist_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (gist_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => gist_minus_simple;
    const simulate: (connection: IConnection<getByGist_id.Headers>, gist_id: string) => Output;
}
/**
 * Update a gist.
 * Allows you to update a gist's description and to update, delete, or rename gist files. Files
 * from the previous version of the gist that aren't explicitly changed during an edit
 * are unchanged.
 *
 * At least one of `description` or `files` is required.
 *
 * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."
 *
 * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.
 * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.
 *
 * @tag gists
 * @path gists/:gist_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function patchByGist_id(connection: IConnection<patchByGist_id.Headers>, gist_id: string, body: patchByGist_id.Input): Promise<patchByGist_id.Output>;
export declare namespace patchByGist_id {
    type Headers = IApiGists.PatchHeader;
    type Input = body;
    type Output = gist_minus_simple;
    const METADATA: {
        readonly method: "PATCH";
        readonly path: "/gists/:gist_id";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (gist_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => gist_minus_simple;
    const simulate: (connection: IConnection<patchByGist_id.Headers>, gist_id: string, body: patchByGist_id.Input) => Output;
}
/**
 * @tag gists
 * @path gists/:gist_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByGist_id(connection: IConnection<eraseByGist_id.Headers>, gist_id: string): Promise<void>;
export declare namespace eraseByGist_id {
    type Headers = IApiGists.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/gists/:gist_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (gist_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByGist_id.Headers>, gist_id: string) => void;
}
/**
 * Get a gist revision.
 * Gets a specified gist revision.
 *
 * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."
 *
 * - **`application/vnd.github.raw+json`**: Returns the raw markdown. This is the default if you do not pass any specific media type.
 * - **`application/vnd.github.base64+json`**: Returns the base64-encoded contents. This can be useful if your gist contains any invalid UTF-8 sequences.
 *
 * @tag gists
 * @path gists/:gist_id/:sha
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByGist_idAndSha(connection: IConnection<getByGist_idAndSha.Headers>, gist_id: string, sha: string): Promise<getByGist_idAndSha.Output>;
export declare namespace getByGist_idAndSha {
    type Headers = IApiGists.GetHeader;
    type Output = gist_minus_simple;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/gists/:gist_id/:sha";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (gist_id: string, sha: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => gist_minus_simple;
    const simulate: (connection: IConnection<getByGist_idAndSha.Headers>, gist_id: string, sha: string) => Output;
}
