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";
export type SubjectTypeOther = {
    type: string;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const CreateConnectorAuthorizationRequestSubjectConnectRequestType: {
    readonly JwtBearer: "jwt-bearer";
};
export type CreateConnectorAuthorizationRequestSubjectConnectRequestType = ClosedEnum<typeof CreateConnectorAuthorizationRequestSubjectConnectRequestType>;
export type SubjectTypeJwtBearer = {
    type: CreateConnectorAuthorizationRequestSubjectConnectRequestType;
    sub?: string | undefined;
    iss?: string | undefined;
    aud?: string | undefined;
    additionalClaims?: {
        [k: string]: any;
    } | undefined;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const CreateConnectorAuthorizationRequestSubjectConnectType: {
    readonly User: "user";
};
export type CreateConnectorAuthorizationRequestSubjectConnectType = ClosedEnum<typeof CreateConnectorAuthorizationRequestSubjectConnectType>;
export type SubjectTypeUser = {
    type: CreateConnectorAuthorizationRequestSubjectConnectType;
    id?: string | undefined;
    issuer?: string | undefined;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const CreateConnectorAuthorizationRequestSubjectType: {
    readonly App: "app";
};
export type CreateConnectorAuthorizationRequestSubjectType = ClosedEnum<typeof CreateConnectorAuthorizationRequestSubjectType>;
export type SubjectTypeApp = {
    type: CreateConnectorAuthorizationRequestSubjectType;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export type CreateConnectorAuthorizationRequestSubject = SubjectTypeApp | SubjectTypeUser | SubjectTypeJwtBearer | SubjectTypeOther;
export type CreateConnectorAuthorizationRequestAuthorizationDetails = {
    type?: string | undefined;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export type CreateConnectorAuthorizationRequestRequestBody = {
    subject?: SubjectTypeApp | SubjectTypeUser | SubjectTypeJwtBearer | SubjectTypeOther | undefined;
    installationId?: string | undefined;
    audience?: Array<string> | undefined;
    scopes?: Array<string> | undefined;
    resources?: Array<string> | undefined;
    authorizationDetails?: Array<CreateConnectorAuthorizationRequestAuthorizationDetails> | undefined;
    validityBufferMs?: number | undefined;
    returnUrl?: string | undefined;
    webhook?: string | undefined;
    prompt?: string | undefined;
    deviceCode?: boolean | undefined;
    expiresInMs?: number | undefined;
    additionalParams?: {
        [k: string]: string;
    } | undefined;
};
export type CreateConnectorAuthorizationRequestRequest = {
    connector: string;
    requestBody?: CreateConnectorAuthorizationRequestRequestBody | undefined;
};
export type CreateConnectorAuthorizationRequestConnector = {
    /**
     * Client id (e.g. `scl_…`).
     */
    id: string;
    /**
     * Client uid (e.g. `salesforce/my-org`).
     */
    uid: string;
    /**
     * Client type (e.g. `oauth`, `salesforce`).
     */
    type: string;
    /**
     * Resolved service id when known (e.g. `salesforce`), following the `stored.service ?? typeDef.service ?? stored.type` convention.
     */
    service?: string | undefined;
    /**
     * Curated display name of the resolved service (e.g. "Salesforce"), present when the service is a known service. Suited for end-user surfaces like "Sign in with {serviceName}".
     */
    serviceName?: string | undefined;
    /**
     * The connector's own name: the operator-given client name, falling back to the client type's name for legacy rows without one.
     */
    name: string;
};
export type CreateConnectorAuthorizationRequestResponseBody = {
    url: string;
    request: string;
    verifier: string;
    deviceCode?: string | undefined;
    expiresAt: number;
    connector: CreateConnectorAuthorizationRequestConnector;
};
/** @internal */
export type SubjectTypeOther$Outbound = {
    type: string;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const SubjectTypeOther$outboundSchema: z.ZodType<SubjectTypeOther$Outbound, z.ZodTypeDef, SubjectTypeOther>;
export declare function subjectTypeOtherToJSON(subjectTypeOther: SubjectTypeOther): string;
/** @internal */
export declare const CreateConnectorAuthorizationRequestSubjectConnectRequestType$outboundSchema: z.ZodNativeEnum<typeof CreateConnectorAuthorizationRequestSubjectConnectRequestType>;
/** @internal */
export type SubjectTypeJwtBearer$Outbound = {
    type: string;
    sub?: string | undefined;
    iss?: string | undefined;
    aud?: string | undefined;
    additionalClaims?: {
        [k: string]: any;
    } | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const SubjectTypeJwtBearer$outboundSchema: z.ZodType<SubjectTypeJwtBearer$Outbound, z.ZodTypeDef, SubjectTypeJwtBearer>;
export declare function subjectTypeJwtBearerToJSON(subjectTypeJwtBearer: SubjectTypeJwtBearer): string;
/** @internal */
export declare const CreateConnectorAuthorizationRequestSubjectConnectType$outboundSchema: z.ZodNativeEnum<typeof CreateConnectorAuthorizationRequestSubjectConnectType>;
/** @internal */
export type SubjectTypeUser$Outbound = {
    type: string;
    id?: string | undefined;
    issuer?: string | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const SubjectTypeUser$outboundSchema: z.ZodType<SubjectTypeUser$Outbound, z.ZodTypeDef, SubjectTypeUser>;
export declare function subjectTypeUserToJSON(subjectTypeUser: SubjectTypeUser): string;
/** @internal */
export declare const CreateConnectorAuthorizationRequestSubjectType$outboundSchema: z.ZodNativeEnum<typeof CreateConnectorAuthorizationRequestSubjectType>;
/** @internal */
export type SubjectTypeApp$Outbound = {
    type: string;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const SubjectTypeApp$outboundSchema: z.ZodType<SubjectTypeApp$Outbound, z.ZodTypeDef, SubjectTypeApp>;
export declare function subjectTypeAppToJSON(subjectTypeApp: SubjectTypeApp): string;
/** @internal */
export type CreateConnectorAuthorizationRequestSubject$Outbound = SubjectTypeApp$Outbound | SubjectTypeUser$Outbound | SubjectTypeJwtBearer$Outbound | SubjectTypeOther$Outbound;
/** @internal */
export declare const CreateConnectorAuthorizationRequestSubject$outboundSchema: z.ZodType<CreateConnectorAuthorizationRequestSubject$Outbound, z.ZodTypeDef, CreateConnectorAuthorizationRequestSubject>;
export declare function createConnectorAuthorizationRequestSubjectToJSON(createConnectorAuthorizationRequestSubject: CreateConnectorAuthorizationRequestSubject): string;
/** @internal */
export type CreateConnectorAuthorizationRequestAuthorizationDetails$Outbound = {
    type?: string | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const CreateConnectorAuthorizationRequestAuthorizationDetails$outboundSchema: z.ZodType<CreateConnectorAuthorizationRequestAuthorizationDetails$Outbound, z.ZodTypeDef, CreateConnectorAuthorizationRequestAuthorizationDetails>;
export declare function createConnectorAuthorizationRequestAuthorizationDetailsToJSON(createConnectorAuthorizationRequestAuthorizationDetails: CreateConnectorAuthorizationRequestAuthorizationDetails): string;
/** @internal */
export type CreateConnectorAuthorizationRequestRequestBody$Outbound = {
    subject?: SubjectTypeApp$Outbound | SubjectTypeUser$Outbound | SubjectTypeJwtBearer$Outbound | SubjectTypeOther$Outbound | undefined;
    installationId?: string | undefined;
    audience?: Array<string> | undefined;
    scopes?: Array<string> | undefined;
    resources?: Array<string> | undefined;
    authorizationDetails?: Array<CreateConnectorAuthorizationRequestAuthorizationDetails$Outbound> | undefined;
    validityBufferMs?: number | undefined;
    returnUrl?: string | undefined;
    webhook?: string | undefined;
    prompt?: string | undefined;
    deviceCode?: boolean | undefined;
    expiresInMs?: number | undefined;
    additionalParams?: {
        [k: string]: string;
    } | undefined;
};
/** @internal */
export declare const CreateConnectorAuthorizationRequestRequestBody$outboundSchema: z.ZodType<CreateConnectorAuthorizationRequestRequestBody$Outbound, z.ZodTypeDef, CreateConnectorAuthorizationRequestRequestBody>;
export declare function createConnectorAuthorizationRequestRequestBodyToJSON(createConnectorAuthorizationRequestRequestBody: CreateConnectorAuthorizationRequestRequestBody): string;
/** @internal */
export type CreateConnectorAuthorizationRequestRequest$Outbound = {
    connector: string;
    RequestBody?: CreateConnectorAuthorizationRequestRequestBody$Outbound | undefined;
};
/** @internal */
export declare const CreateConnectorAuthorizationRequestRequest$outboundSchema: z.ZodType<CreateConnectorAuthorizationRequestRequest$Outbound, z.ZodTypeDef, CreateConnectorAuthorizationRequestRequest>;
export declare function createConnectorAuthorizationRequestRequestToJSON(createConnectorAuthorizationRequestRequest: CreateConnectorAuthorizationRequestRequest): string;
/** @internal */
export declare const CreateConnectorAuthorizationRequestConnector$inboundSchema: z.ZodType<CreateConnectorAuthorizationRequestConnector, z.ZodTypeDef, unknown>;
export declare function createConnectorAuthorizationRequestConnectorFromJSON(jsonString: string): SafeParseResult<CreateConnectorAuthorizationRequestConnector, SDKValidationError>;
/** @internal */
export declare const CreateConnectorAuthorizationRequestResponseBody$inboundSchema: z.ZodType<CreateConnectorAuthorizationRequestResponseBody, z.ZodTypeDef, unknown>;
export declare function createConnectorAuthorizationRequestResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateConnectorAuthorizationRequestResponseBody, SDKValidationError>;
//# sourceMappingURL=createconnectorauthorizationrequestop.d.ts.map