import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiOrgsPublicMembers } from "../../../structures/IApiOrgsPublicMembers";
import { simple_minus_user } from "../../../structures/simple_minus_user";
/**
 * List public organization members.
 * Members of an organization can choose to have their membership publicized or not.
 *
 * @tag orgs
 * @path orgs/:org/public_members
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOrg(connection: IConnection<getByOrg.Headers>, org: string): Promise<getByOrg.Output>;
export declare namespace getByOrg {
    type Headers = IApiOrgsPublicMembers.GetHeader;
    type Output = simple_minus_user[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/public_members";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => simple_minus_user[];
    const simulate: (connection: IConnection<getByOrg.Headers>, org: string) => Output;
}
/**
 * Check public organization membership for a user.
 * Check if the provided user is a public member of the organization.
 *
 * @tag orgs
 * @path orgs/:org/public_members/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOrgAndUsername(connection: IConnection<getByOrgAndUsername.Headers>, org: string, username: string): Promise<void>;
export declare namespace getByOrgAndUsername {
    type Headers = IApiOrgsPublicMembers.GetHeader;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/public_members/:username";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<getByOrgAndUsername.Headers>, org: string, username: string) => void;
}
/**
 * Set public organization membership for the authenticated user.
 * The user can publicize their own membership. (A user cannot publicize the membership for another user.)
 *
 * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-api#http-method)."
 *
 * @tag orgs
 * @path orgs/:org/public_members/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByOrgAndUsername(connection: IConnection<putByOrgAndUsername.Headers>, org: string, username: string): Promise<void>;
export declare namespace putByOrgAndUsername {
    type Headers = IApiOrgsPublicMembers.PutHeader;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/orgs/:org/public_members/:username";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<putByOrgAndUsername.Headers>, org: string, username: string) => void;
}
/**
 * Remove public organization membership for the authenticated user.
 * Removes the public membership for the authenticated user from the specified organization, unless public visibility is enforced by default.
 *
 * @tag orgs
 * @path orgs/:org/public_members/:username
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOrgAndUsername(connection: IConnection<eraseByOrgAndUsername.Headers>, org: string, username: string): Promise<void>;
export declare namespace eraseByOrgAndUsername {
    type Headers = IApiOrgsPublicMembers.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/orgs/:org/public_members/:username";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, username: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOrgAndUsername.Headers>, org: string, username: string) => void;
}
