import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiProjectsCollaborators } from "../../../structures/IApiProjectsCollaborators";
import { simple_minus_user } from "../../../structures/simple_minus_user";
import { body } from "../../../structures/body";
export * as permission from "./permission";
/**
 * List project collaborators.
 * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators.
 *
 * @tag projects
 * @path projects/:project_id/collaborators
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByProject_id(connection: IConnection<getByProject_id.Headers>, project_id: string, query: getByProject_id.Query): Promise<getByProject_id.Output>;
export declare namespace getByProject_id {
    type Headers = IApiProjectsCollaborators.GetHeader;
    type Query = IApiProjectsCollaborators.GetQuery;
    type Output = simple_minus_user[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/projects/:project_id/collaborators";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (project_id: string, query: getByProject_id.Query) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => simple_minus_user[];
    const simulate: (connection: IConnection<getByProject_id.Headers>, project_id: string, query: getByProject_id.Query) => Output;
}
/**
 * Add project collaborator.
 * Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator.
 *
 * @tag projects
 * @path projects/:project_id/collaborators/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByProject_idAndUsername(connection: IConnection<putByProject_idAndUsername.Headers>, project_id: string, username: string, body: putByProject_idAndUsername.Input): Promise<void>;
export declare namespace putByProject_idAndUsername {
    type Headers = IApiProjectsCollaborators.PutHeader;
    type Input = body;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/projects/:project_id/collaborators/:username";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (project_id: string, username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<putByProject_idAndUsername.Headers>, project_id: string, username: string, body: putByProject_idAndUsername.Input) => void;
}
/**
 * Remove user as a collaborator.
 * Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator.
 *
 * @tag projects
 * @path projects/:project_id/collaborators/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByProject_idAndUsername(connection: IConnection<eraseByProject_idAndUsername.Headers>, project_id: string, username: string): Promise<void>;
export declare namespace eraseByProject_idAndUsername {
    type Headers = IApiProjectsCollaborators.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/projects/:project_id/collaborators/:username";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (project_id: string, username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByProject_idAndUsername.Headers>, project_id: string, username: string) => void;
}
