import { type SSOOptions } from "@better-auth/sso"; export type { SSOOptions } from "@better-auth/sso"; /** * SSO 플러그인 스키마 * * better-auth sso 플러그인 호출 시 전달합니다: * ```typescript * sso({ schema: SSO_SCHEMA }) * ``` */ export declare const SSO_SCHEMA: SSOOptions; /** * sso 플러그인 래퍼 * * Sonamu의 스키마 매핑을 자동으로 병합합니다. */ export declare const sso: (options?: SSOOptions) => { id: "sso"; version: string; endpoints: { spMetadata: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/saml2/sp/metadata", { method: "GET"; query: import("zod").ZodObject<{ providerId: import("zod").ZodString; format: import("zod").ZodDefault>; }, import("zod/v4/core").$strip>; metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "200": { description: string; }; }; }; }; }, Response>>; registerSSOProvider: import("better-auth").StrictEndpoint<"/sso/register", { method: "POST"; body: import("zod").ZodObject<{ providerId: import("zod").ZodString; issuer: import("zod").ZodString; domain: import("zod").ZodString; oidcConfig: import("zod").ZodOptional; tokenEndpoint: import("zod").ZodOptional; userInfoEndpoint: import("zod").ZodOptional; tokenEndpointAuthentication: import("zod").ZodOptional>; jwksEndpoint: import("zod").ZodOptional; discoveryEndpoint: import("zod").ZodOptional; skipDiscovery: import("zod").ZodOptional; scopes: import("zod").ZodOptional>; pkce: import("zod").ZodOptional>; mapping: import("zod").ZodOptional; name: import("zod").ZodString; image: import("zod").ZodOptional; extraFields: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>; samlConfig: import("zod").ZodOptional; idpMetadata: import("zod").ZodOptional; entityID: import("zod").ZodOptional; cert: import("zod").ZodOptional; privateKey: import("zod").ZodOptional; privateKeyPass: import("zod").ZodOptional; isAssertionEncrypted: import("zod").ZodOptional; encPrivateKey: import("zod").ZodOptional; encPrivateKeyPass: import("zod").ZodOptional; singleSignOnService: import("zod").ZodOptional>>; }, import("zod/v4/core").$strip>>; spMetadata: import("zod").ZodObject<{ metadata: import("zod").ZodOptional; entityID: import("zod").ZodOptional; binding: import("zod").ZodOptional; privateKey: import("zod").ZodOptional; privateKeyPass: import("zod").ZodOptional; isAssertionEncrypted: import("zod").ZodOptional; encPrivateKey: import("zod").ZodOptional; encPrivateKeyPass: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; wantAssertionsSigned: import("zod").ZodOptional; authnRequestsSigned: import("zod").ZodOptional; signatureAlgorithm: import("zod").ZodOptional; digestAlgorithm: import("zod").ZodOptional; identifierFormat: import("zod").ZodOptional; privateKey: import("zod").ZodOptional; decryptionPvk: import("zod").ZodOptional; additionalParams: import("zod").ZodOptional>; mapping: import("zod").ZodOptional; name: import("zod").ZodString; firstName: import("zod").ZodOptional; lastName: import("zod").ZodOptional; extraFields: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>; organizationId: import("zod").ZodOptional; overrideUserInfo: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>; use: ((inputContext: import("better-auth").MiddlewareInputContext) => Promise<{ session: { session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record & { id: string; createdAt: Date; updatedAt: Date; email: string; emailVerified: boolean; name: string; image?: string | null | undefined; }; }; }>)[]; metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "200": { description: string; content: { "application/json": { schema: { type: "object"; properties: { issuer: { type: string; format: string; description: string; }; domain: { type: string; description: string; }; domainVerified: { type: string; description: string; }; domainVerificationToken: { type: string; description: string; }; oidcConfig: { type: string; properties: { issuer: { type: string; format: string; description: string; }; pkce: { type: string; description: string; }; clientId: { type: string; description: string; }; clientSecret: { type: string; description: string; }; authorizationEndpoint: { type: string; format: string; nullable: boolean; description: string; }; discoveryEndpoint: { type: string; format: string; description: string; }; userInfoEndpoint: { type: string; format: string; nullable: boolean; description: string; }; scopes: { type: string; items: { type: string; }; nullable: boolean; description: string; }; tokenEndpoint: { type: string; format: string; nullable: boolean; description: string; }; tokenEndpointAuthentication: { type: string; enum: string[]; nullable: boolean; description: string; }; jwksEndpoint: { type: string; format: string; nullable: boolean; description: string; }; mapping: { type: string; nullable: boolean; properties: { id: { type: string; description: string; }; email: { type: string; description: string; }; emailVerified: { type: string; nullable: boolean; description: string; }; name: { type: string; description: string; }; image: { type: string; nullable: boolean; description: string; }; extraFields: { type: string; additionalProperties: { type: string; }; nullable: boolean; description: string; }; }; required: string[]; }; }; required: string[]; description: string; }; organizationId: { type: string; nullable: boolean; description: string; }; userId: { type: string; description: string; }; providerId: { type: string; description: string; }; redirectURI: { type: string; format: string; description: string; }; }; required: string[]; }; }; }; }; }; }; }; }, { redirectURI: string; oidcConfig: import("@better-auth/sso").OIDCConfig | null; samlConfig: import("@better-auth/sso").SAMLConfig | null; } & Omit<{ issuer: string; oidcConfig?: import("@better-auth/sso").OIDCConfig | undefined; samlConfig?: import("@better-auth/sso").SAMLConfig | undefined; userId: string; providerId: string; organizationId?: string | undefined; domain: string; }, "oidcConfig" | "samlConfig">>; signInSSO: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sign-in/sso", { method: "POST"; body: import("zod").ZodObject<{ email: import("zod").ZodOptional; organizationSlug: import("zod").ZodOptional; providerId: import("zod").ZodOptional; domain: import("zod").ZodOptional; callbackURL: import("zod").ZodString; errorCallbackURL: import("zod").ZodOptional; newUserCallbackURL: import("zod").ZodOptional; scopes: import("zod").ZodOptional>; loginHint: import("zod").ZodOptional; requestSignUp: import("zod").ZodOptional; providerType: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>; metadata: { openapi: { operationId: string; summary: string; description: string; requestBody: { content: { "application/json": { schema: { type: "object"; properties: { email: { type: string; description: string; }; issuer: { type: string; description: string; }; providerId: { type: string; description: string; }; callbackURL: { type: string; description: string; }; errorCallbackURL: { type: string; description: string; }; newUserCallbackURL: { type: string; description: string; }; loginHint: { type: string; description: string; }; }; required: string[]; }; }; }; }; responses: { "200": { description: string; content: { "application/json": { schema: { type: "object"; properties: { url: { type: string; format: string; description: string; }; redirect: { type: string; description: string; enum: boolean[]; }; }; required: string[]; }; }; }; }; }; }; }; }, { url: string; redirect: boolean; }>>; callbackSSO: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/callback/:providerId", { method: "GET"; query: import("zod").ZodObject<{ code: import("zod").ZodOptional; state: import("zod").ZodString; error: import("zod").ZodOptional; error_description: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; allowedMediaTypes: readonly ["application/x-www-form-urlencoded", "application/json"]; metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "302": { description: string; }; }; }; scope: "server"; }; }, void>>; callbackSSOShared: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/callback", { metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "302": { description: string; }; }; }; scope: "server"; }; method: "GET"; query: import("zod").ZodObject<{ code: import("zod").ZodOptional; state: import("zod").ZodString; error: import("zod").ZodOptional; error_description: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; allowedMediaTypes: readonly ["application/x-www-form-urlencoded", "application/json"]; }, void>>; callbackSSOSAML: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/saml2/callback/:providerId", { method: ("POST" | "GET")[]; body: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; query: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; metadata: { allowedMediaTypes: string[]; openapi: { operationId: string; summary: string; description: string; responses: { "302": { description: string; }; "400": { description: string; }; "401": { description: string; }; }; }; scope: "server"; }; }, never>>; acsEndpoint: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/saml2/sp/acs/:providerId", { method: "POST"; body: import("zod").ZodObject<{ SAMLResponse: import("zod").ZodString; RelayState: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; metadata: { allowedMediaTypes: string[]; openapi: { operationId: string; summary: string; description: string; responses: { "302": { description: string; }; }; }; scope: "server"; }; }, never>>; sloEndpoint: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/saml2/sp/slo/:providerId", { method: ("POST" | "GET")[]; body: import("zod").ZodOptional; SAMLResponse: import("zod").ZodOptional; RelayState: import("zod").ZodOptional; SigAlg: import("zod").ZodOptional; Signature: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; query: import("zod").ZodOptional; SAMLResponse: import("zod").ZodOptional; RelayState: import("zod").ZodOptional; SigAlg: import("zod").ZodOptional; Signature: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; metadata: { allowedMediaTypes: string[]; scope: "server"; }; }, void | Response>>; initiateSLO: ReturnType<(options?: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/saml2/logout/:providerId", { method: "POST"; body: import("zod").ZodObject<{ callbackURL: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; use: ((inputContext: import("better-auth").MiddlewareInputContext) => Promise<{ session: { session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record & { id: string; createdAt: Date; updatedAt: Date; email: string; emailVerified: boolean; name: string; image?: string | null | undefined; }; }; }>)[]; metadata: { readonly scope: "server"; }; }, never>>; listSSOProviders: ReturnType<() => import("better-auth").StrictEndpoint<"/sso/providers", { method: "GET"; use: ((inputContext: import("better-auth").MiddlewareInputContext) => Promise<{ session: { session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record & { id: string; createdAt: Date; updatedAt: Date; email: string; emailVerified: boolean; name: string; image?: string | null | undefined; }; }; }>)[]; metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "200": { description: string; }; }; }; }; }, { providers: { providerId: string; type: string; issuer: string; domain: string; organizationId: string | null; domainVerified: boolean; oidcConfig: { discoveryEndpoint: string; clientIdLastFour: string; pkce: boolean; authorizationEndpoint: string | undefined; tokenEndpoint: string | undefined; userInfoEndpoint: string | undefined; jwksEndpoint: string | undefined; scopes: string[] | undefined; tokenEndpointAuthentication: "client_secret_post" | "client_secret_basic" | undefined; } | undefined; samlConfig: { entryPoint: string; callbackUrl: string; audience: string | undefined; wantAssertionsSigned: boolean | undefined; authnRequestsSigned: boolean | undefined; identifierFormat: string | undefined; signatureAlgorithm: string | undefined; digestAlgorithm: string | undefined; certificate: { fingerprintSha256: string; notBefore: string; notAfter: string; publicKeyAlgorithm: string; } | { error: string; }; } | undefined; spMetadataUrl: string; }[]; }>>; getSSOProvider: ReturnType<() => import("better-auth").StrictEndpoint<"/sso/get-provider", { method: "GET"; use: ((inputContext: import("better-auth").MiddlewareInputContext) => Promise<{ session: { session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record & { id: string; createdAt: Date; updatedAt: Date; email: string; emailVerified: boolean; name: string; image?: string | null | undefined; }; }; }>)[]; query: import("zod").ZodObject<{ providerId: import("zod").ZodString; }, import("zod/v4/core").$strip>; metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "200": { description: string; }; "404": { description: string; }; "403": { description: string; }; }; }; }; }, { providerId: string; type: string; issuer: string; domain: string; organizationId: string | null; domainVerified: boolean; oidcConfig: { discoveryEndpoint: string; clientIdLastFour: string; pkce: boolean; authorizationEndpoint: string | undefined; tokenEndpoint: string | undefined; userInfoEndpoint: string | undefined; jwksEndpoint: string | undefined; scopes: string[] | undefined; tokenEndpointAuthentication: "client_secret_post" | "client_secret_basic" | undefined; } | undefined; samlConfig: { entryPoint: string; callbackUrl: string; audience: string | undefined; wantAssertionsSigned: boolean | undefined; authnRequestsSigned: boolean | undefined; identifierFormat: string | undefined; signatureAlgorithm: string | undefined; digestAlgorithm: string | undefined; certificate: { fingerprintSha256: string; notBefore: string; notAfter: string; publicKeyAlgorithm: string; } | { error: string; }; } | undefined; spMetadataUrl: string; }>>; updateSSOProvider: ReturnType<(options: SSOOptions) => import("better-auth").StrictEndpoint<"/sso/update-provider", { method: "POST"; use: ((inputContext: import("better-auth").MiddlewareInputContext) => Promise<{ session: { session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record & { id: string; createdAt: Date; updatedAt: Date; email: string; emailVerified: boolean; name: string; image?: string | null | undefined; }; }; }>)[]; body: import("zod").ZodObject<{ issuer: import("zod").ZodOptional; domain: import("zod").ZodOptional; oidcConfig: import("zod").ZodOptional; clientSecret: import("zod").ZodOptional; authorizationEndpoint: import("zod").ZodOptional; tokenEndpoint: import("zod").ZodOptional; userInfoEndpoint: import("zod").ZodOptional; tokenEndpointAuthentication: import("zod").ZodOptional>; jwksEndpoint: import("zod").ZodOptional; discoveryEndpoint: import("zod").ZodOptional; scopes: import("zod").ZodOptional>; pkce: import("zod").ZodOptional; overrideUserInfo: import("zod").ZodOptional; mapping: import("zod").ZodOptional; email: import("zod").ZodOptional; emailVerified: import("zod").ZodOptional; name: import("zod").ZodOptional; image: import("zod").ZodOptional; extraFields: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>; samlConfig: import("zod").ZodOptional; cert: import("zod").ZodOptional; callbackUrl: import("zod").ZodOptional; audience: import("zod").ZodOptional; idpMetadata: import("zod").ZodOptional; entityID: import("zod").ZodOptional; cert: import("zod").ZodOptional; privateKey: import("zod").ZodOptional; privateKeyPass: import("zod").ZodOptional; isAssertionEncrypted: import("zod").ZodOptional; encPrivateKey: import("zod").ZodOptional; encPrivateKeyPass: import("zod").ZodOptional; singleSignOnService: import("zod").ZodOptional>>; }, import("zod/v4/core").$strip>>; spMetadata: import("zod").ZodOptional; entityID: import("zod").ZodOptional; binding: import("zod").ZodOptional; privateKey: import("zod").ZodOptional; privateKeyPass: import("zod").ZodOptional; isAssertionEncrypted: import("zod").ZodOptional; encPrivateKey: import("zod").ZodOptional; encPrivateKeyPass: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; wantAssertionsSigned: import("zod").ZodOptional; authnRequestsSigned: import("zod").ZodOptional; signatureAlgorithm: import("zod").ZodOptional; digestAlgorithm: import("zod").ZodOptional; identifierFormat: import("zod").ZodOptional; privateKey: import("zod").ZodOptional; decryptionPvk: import("zod").ZodOptional; additionalParams: import("zod").ZodOptional>; mapping: import("zod").ZodOptional; email: import("zod").ZodOptional; emailVerified: import("zod").ZodOptional; name: import("zod").ZodOptional; firstName: import("zod").ZodOptional; lastName: import("zod").ZodOptional; extraFields: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>; providerId: import("zod").ZodString; }, import("zod/v4/core").$strip>; metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "200": { description: string; }; "404": { description: string; }; "403": { description: string; }; }; }; }; }, { providerId: string; type: string; issuer: string; domain: string; organizationId: string | null; domainVerified: boolean; oidcConfig: { discoveryEndpoint: string; clientIdLastFour: string; pkce: boolean; authorizationEndpoint: string | undefined; tokenEndpoint: string | undefined; userInfoEndpoint: string | undefined; jwksEndpoint: string | undefined; scopes: string[] | undefined; tokenEndpointAuthentication: "client_secret_post" | "client_secret_basic" | undefined; } | undefined; samlConfig: { entryPoint: string; callbackUrl: string; audience: string | undefined; wantAssertionsSigned: boolean | undefined; authnRequestsSigned: boolean | undefined; identifierFormat: string | undefined; signatureAlgorithm: string | undefined; digestAlgorithm: string | undefined; certificate: { fingerprintSha256: string; notBefore: string; notAfter: string; publicKeyAlgorithm: string; } | { error: string; }; } | undefined; spMetadataUrl: string; }>>; deleteSSOProvider: ReturnType<() => import("better-auth").StrictEndpoint<"/sso/delete-provider", { method: "POST"; use: ((inputContext: import("better-auth").MiddlewareInputContext) => Promise<{ session: { session: Record & { id: string; createdAt: Date; updatedAt: Date; userId: string; expiresAt: Date; token: string; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record & { id: string; createdAt: Date; updatedAt: Date; email: string; emailVerified: boolean; name: string; image?: string | null | undefined; }; }; }>)[]; body: import("zod").ZodObject<{ providerId: import("zod").ZodString; }, import("zod/v4/core").$strip>; metadata: { openapi: { operationId: string; summary: string; description: string; responses: { "200": { description: string; }; "404": { description: string; }; "403": { description: string; }; }; }; }; }, { success: boolean; }>>; }; options: NoInfer; }; //# sourceMappingURL=sso.d.ts.map