import * as z from "zod/v3";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
/**
 * The origin of the request.
 */
export declare const RequestAccessToTeamOrigin: {
    readonly Import: "import";
    readonly Teams: "teams";
    readonly Github: "github";
    readonly Gitlab: "gitlab";
    readonly Bitbucket: "bitbucket";
    readonly Feedback: "feedback";
    readonly OrganizationTeams: "organization-teams";
};
/**
 * The origin of the request.
 */
export type RequestAccessToTeamOrigin = ClosedEnum<typeof RequestAccessToTeamOrigin>;
/**
 * The ID of the Git account of the user who requests access.
 */
export type RequestAccessToTeamGitUserId = string | number;
export type RequestAccessToTeamJoinedFrom = {
    /**
     * The origin of the request.
     */
    origin: RequestAccessToTeamOrigin;
    /**
     * The commit sha if the origin is a git provider.
     */
    commitId?: string | undefined;
    /**
     * The ID of the repository for the given Git provider.
     */
    repoId?: string | undefined;
    /**
     * The path to the repository for the given Git provider.
     */
    repoPath?: string | undefined;
    /**
     * The ID of the Git account of the user who requests access.
     */
    gitUserId?: string | number | undefined;
    /**
     * The login name for the Git account of the user who requests access.
     */
    gitUserLogin?: string | undefined;
};
export type RequestAccessToTeamRequestBody = {
    joinedFrom: RequestAccessToTeamJoinedFrom;
};
export type RequestAccessToTeamRequest = {
    teamId: string;
    requestBody: RequestAccessToTeamRequestBody;
};
export declare const RequestAccessToTeamTeamsOrigin: {
    readonly AccountUpdate: "account-update";
    readonly Bitbucket: "bitbucket";
    readonly Dsync: "dsync";
    readonly Feedback: "feedback";
    readonly Github: "github";
    readonly Gitlab: "gitlab";
    readonly Import: "import";
    readonly Link: "link";
    readonly Mail: "mail";
    readonly NsnbAutoApprove: "nsnb-auto-approve";
    readonly NsnbHobbyUpgrade: "nsnb-hobby-upgrade";
    readonly NsnbInvite: "nsnb-invite";
    readonly NsnbRedeploy: "nsnb-redeploy";
    readonly NsnbRedeployAttributionCard: "nsnb-redeploy-attribution-card";
    readonly NsnbRequestAccess: "nsnb-request-access";
    readonly NsnbViewerUpgrade: "nsnb-viewer-upgrade";
    readonly OrganizationTeams: "organization-teams";
    readonly Saml: "saml";
    readonly Teams: "teams";
};
export type RequestAccessToTeamTeamsOrigin = ClosedEnum<typeof RequestAccessToTeamTeamsOrigin>;
export type RequestAccessToTeamTeamsGitUserId = string | number;
export type RequestAccessToTeamTeamsJoinedFrom = {
    origin: RequestAccessToTeamTeamsOrigin;
    commitId?: string | undefined;
    repoId?: string | undefined;
    repoPath?: string | undefined;
    gitUserId?: string | number | undefined;
    gitUserLogin?: string | undefined;
    ssoUserId?: string | undefined;
    ssoConnectedAt?: number | undefined;
    idpUserId?: string | undefined;
    dsyncUserId?: string | undefined;
    dsyncConnectedAt?: number | undefined;
};
export type Github = {
    login?: string | undefined;
};
export type Gitlab = {
    login?: string | undefined;
};
export type Bitbucket = {
    login?: string | undefined;
};
/**
 * Successfuly requested access to the team.
 */
export type RequestAccessToTeamResponseBody = {
    teamSlug: string;
    teamName: string;
    confirmed?: boolean | undefined;
    joinedFrom?: RequestAccessToTeamTeamsJoinedFrom | undefined;
    accessRequestedAt?: number | undefined;
    github: Github | null;
    gitlab: Gitlab | null;
    bitbucket: Bitbucket | null;
};
/** @internal */
export declare const RequestAccessToTeamOrigin$outboundSchema: z.ZodNativeEnum<typeof RequestAccessToTeamOrigin>;
/** @internal */
export type RequestAccessToTeamGitUserId$Outbound = string | number;
/** @internal */
export declare const RequestAccessToTeamGitUserId$outboundSchema: z.ZodType<RequestAccessToTeamGitUserId$Outbound, z.ZodTypeDef, RequestAccessToTeamGitUserId>;
export declare function requestAccessToTeamGitUserIdToJSON(requestAccessToTeamGitUserId: RequestAccessToTeamGitUserId): string;
/** @internal */
export type RequestAccessToTeamJoinedFrom$Outbound = {
    origin: string;
    commitId?: string | undefined;
    repoId?: string | undefined;
    repoPath?: string | undefined;
    gitUserId?: string | number | undefined;
    gitUserLogin?: string | undefined;
};
/** @internal */
export declare const RequestAccessToTeamJoinedFrom$outboundSchema: z.ZodType<RequestAccessToTeamJoinedFrom$Outbound, z.ZodTypeDef, RequestAccessToTeamJoinedFrom>;
export declare function requestAccessToTeamJoinedFromToJSON(requestAccessToTeamJoinedFrom: RequestAccessToTeamJoinedFrom): string;
/** @internal */
export type RequestAccessToTeamRequestBody$Outbound = {
    joinedFrom: RequestAccessToTeamJoinedFrom$Outbound;
};
/** @internal */
export declare const RequestAccessToTeamRequestBody$outboundSchema: z.ZodType<RequestAccessToTeamRequestBody$Outbound, z.ZodTypeDef, RequestAccessToTeamRequestBody>;
export declare function requestAccessToTeamRequestBodyToJSON(requestAccessToTeamRequestBody: RequestAccessToTeamRequestBody): string;
/** @internal */
export type RequestAccessToTeamRequest$Outbound = {
    teamId: string;
    RequestBody: RequestAccessToTeamRequestBody$Outbound;
};
/** @internal */
export declare const RequestAccessToTeamRequest$outboundSchema: z.ZodType<RequestAccessToTeamRequest$Outbound, z.ZodTypeDef, RequestAccessToTeamRequest>;
export declare function requestAccessToTeamRequestToJSON(requestAccessToTeamRequest: RequestAccessToTeamRequest): string;
/** @internal */
export declare const RequestAccessToTeamTeamsOrigin$inboundSchema: z.ZodNativeEnum<typeof RequestAccessToTeamTeamsOrigin>;
/** @internal */
export declare const RequestAccessToTeamTeamsGitUserId$inboundSchema: z.ZodType<RequestAccessToTeamTeamsGitUserId, z.ZodTypeDef, unknown>;
export declare function requestAccessToTeamTeamsGitUserIdFromJSON(jsonString: string): SafeParseResult<RequestAccessToTeamTeamsGitUserId, SDKValidationError>;
/** @internal */
export declare const RequestAccessToTeamTeamsJoinedFrom$inboundSchema: z.ZodType<RequestAccessToTeamTeamsJoinedFrom, z.ZodTypeDef, unknown>;
export declare function requestAccessToTeamTeamsJoinedFromFromJSON(jsonString: string): SafeParseResult<RequestAccessToTeamTeamsJoinedFrom, SDKValidationError>;
/** @internal */
export declare const Github$inboundSchema: z.ZodType<Github, z.ZodTypeDef, unknown>;
export declare function githubFromJSON(jsonString: string): SafeParseResult<Github, SDKValidationError>;
/** @internal */
export declare const Gitlab$inboundSchema: z.ZodType<Gitlab, z.ZodTypeDef, unknown>;
export declare function gitlabFromJSON(jsonString: string): SafeParseResult<Gitlab, SDKValidationError>;
/** @internal */
export declare const Bitbucket$inboundSchema: z.ZodType<Bitbucket, z.ZodTypeDef, unknown>;
export declare function bitbucketFromJSON(jsonString: string): SafeParseResult<Bitbucket, SDKValidationError>;
/** @internal */
export declare const RequestAccessToTeamResponseBody$inboundSchema: z.ZodType<RequestAccessToTeamResponseBody, z.ZodTypeDef, unknown>;
export declare function requestAccessToTeamResponseBodyFromJSON(jsonString: string): SafeParseResult<RequestAccessToTeamResponseBody, SDKValidationError>;
//# sourceMappingURL=requestaccesstoteamop.d.ts.map