import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiUserFollowing } from "../../../structures/IApiUserFollowing";
import { simple_minus_user } from "../../../structures/simple_minus_user";
/**
 * List the people the authenticated user follows.
 * Lists the people who the authenticated user follows.
 *
 * @tag users
 * @path user/following
 * @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 = IApiUserFollowing.GetHeader;
    type Output = simple_minus_user[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/user/following";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: () => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => simple_minus_user[];
    const simulate: (connection: IConnection<get.Headers>) => Output;
}
/**
 * @tag users
 * @path user/following/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByUsername(connection: IConnection<getByUsername.Headers>, username: string): Promise<void>;
export declare namespace getByUsername {
    type Headers = IApiUserFollowing.GetHeader;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/user/following/:username";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<getByUsername.Headers>, username: string) => void;
}
/**
 * Follow a user.
 * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)."
 *
 * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint.
 *
 * @tag users
 * @path user/following/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByUsername(connection: IConnection<putByUsername.Headers>, username: string): Promise<void>;
export declare namespace putByUsername {
    type Headers = IApiUserFollowing.PutHeader;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/user/following/:username";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<putByUsername.Headers>, username: string) => void;
}
/**
 * Unfollow a user.
 * OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint.
 *
 * @tag users
 * @path user/following/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByUsername(connection: IConnection<eraseByUsername.Headers>, username: string): Promise<void>;
export declare namespace eraseByUsername {
    type Headers = IApiUserFollowing.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/user/following/:username";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByUsername.Headers>, username: string) => void;
}
