import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiNotificationsThreadsSubscription } from "../../../../structures/IApiNotificationsThreadsSubscription";
import { thread_minus_subscription } from "../../../../structures/thread_minus_subscription";
import { body } from "../../../../structures/body";
/**
 * Get a thread subscription for the authenticated user.
 * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://docs.github.com/rest/activity/watching#get-a-repository-subscription).
 *
 * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread.
 *
 * @tag activity
 * @path notifications/threads/:thread_id/subscription
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByThread_id(connection: IConnection<getByThread_id.Headers>, thread_id: string): Promise<getByThread_id.Output>;
export declare namespace getByThread_id {
    type Headers = IApiNotificationsThreadsSubscription.GetHeader;
    type Output = thread_minus_subscription;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/notifications/threads/:thread_id/subscription";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (thread_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => thread_minus_subscription;
    const simulate: (connection: IConnection<getByThread_id.Headers>, thread_id: string) => Output;
}
/**
 * Set a thread subscription.
 * If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an **@mention**.
 *
 * You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored.
 *
 * Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the [Delete a thread subscription](https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription) endpoint.
 *
 * @tag activity
 * @path notifications/threads/:thread_id/subscription
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByThread_id(connection: IConnection<putByThread_id.Headers>, thread_id: string, body: putByThread_id.Input): Promise<putByThread_id.Output>;
export declare namespace putByThread_id {
    type Headers = IApiNotificationsThreadsSubscription.PutHeader;
    type Input = body;
    type Output = thread_minus_subscription;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/notifications/threads/:thread_id/subscription";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (thread_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => thread_minus_subscription;
    const simulate: (connection: IConnection<putByThread_id.Headers>, thread_id: string, body: putByThread_id.Input) => Output;
}
/**
 * Delete a thread subscription.
 * Mutes all future notifications for a conversation until you comment on the thread or get an **@mention**. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the [Set a thread subscription](https://docs.github.com/rest/activity/notifications#set-a-thread-subscription) endpoint and set `ignore` to `true`.
 *
 * @tag activity
 * @path notifications/threads/:thread_id/subscription
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByThread_id(connection: IConnection<eraseByThread_id.Headers>, thread_id: string): Promise<void>;
export declare namespace eraseByThread_id {
    type Headers = IApiNotificationsThreadsSubscription.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/notifications/threads/:thread_id/subscription";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (thread_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByThread_id.Headers>, thread_id: string) => void;
}
