import { type PhoneNumberOptions } from "better-auth/plugins"; export type { PhoneNumberOptions } from "better-auth/plugins"; /** * Phone Number 플러그인 스키마 * * better-auth phoneNumber 플러그인 호출 시 전달합니다: * ```typescript * phoneNumber({ schema: PHONE_NUMBER_SCHEMA }) * ``` */ export declare const PHONE_NUMBER_SCHEMA: PhoneNumberOptions["schema"]; /** * phoneNumber 플러그인 래퍼 * * Sonamu의 스키마 매핑을 자동으로 병합합니다. */ export declare const phoneNumber: (options: PhoneNumberOptions) => { id: "phone-number"; version: string; hooks: { before: { matcher: (ctx: import("better-auth").HookEndpointContext) => boolean; handler: (inputContext: import("better-auth").MiddlewareInputContext) => Promise; }[]; }; endpoints: { signInPhoneNumber: import("better-auth").StrictEndpoint<"/sign-in/phone-number", { method: "POST"; body: import("zod").ZodObject<{ phoneNumber: import("zod").ZodString; password: import("zod").ZodString; rememberMe: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; metadata: { openapi: { summary: string; description: string; responses: { 200: { description: string; content: { "application/json": { schema: { type: "object"; properties: { user: { $ref: string; }; session: { $ref: string; }; }; }; }; }; }; 400: { description: string; }; }; }; }; }, { token: string; user: import("better-auth/plugins").UserWithPhoneNumber; }>; sendPhoneNumberOTP: import("better-auth").StrictEndpoint<"/phone-number/send-otp", { method: "POST"; body: import("zod").ZodObject<{ phoneNumber: import("zod").ZodString; }, import("zod/v4/core").$strip>; metadata: { openapi: { summary: string; description: string; responses: { 200: { description: string; content: { "application/json": { schema: { type: "object"; properties: { message: { type: string; }; }; }; }; }; }; }; }; }; }, { message: string; }>; verifyPhoneNumber: import("better-auth").StrictEndpoint<"/phone-number/verify", { method: "POST"; body: import("zod").ZodIntersection; updatePhoneNumber: import("zod").ZodOptional; }, import("zod/v4/core").$strip>, import("zod").ZodRecord>; metadata: { openapi: { summary: string; description: string; responses: { "200": { description: string; content: { "application/json": { schema: { type: "object"; properties: { status: { type: string; description: string; enum: boolean[]; }; token: { type: string; nullable: boolean; description: string; }; user: { type: string; nullable: boolean; properties: { id: { type: string; description: string; }; email: { type: string; format: string; nullable: boolean; description: string; }; emailVerified: { type: string; nullable: boolean; description: string; }; name: { type: string; nullable: boolean; description: string; }; image: { type: string; format: string; nullable: boolean; description: string; }; phoneNumber: { type: string; description: string; }; phoneNumberVerified: { type: string; description: string; }; createdAt: { type: string; format: string; description: string; }; updatedAt: { type: string; format: string; description: string; }; }; required: string[]; description: string; }; }; required: string[]; }; }; }; }; 400: { description: string; }; }; }; }; }, { status: boolean; token: string; user: { id: string; createdAt: Date; updatedAt: Date; email: string; emailVerified: boolean; name: string; image?: string | null | undefined; } & import("better-auth/plugins").UserWithPhoneNumber; } | { status: boolean; token: null; user: import("better-auth/plugins").UserWithPhoneNumber; }>; requestPasswordResetPhoneNumber: import("better-auth").StrictEndpoint<"/phone-number/request-password-reset", { method: "POST"; body: import("zod").ZodObject<{ phoneNumber: import("zod").ZodString; }, import("zod/v4/core").$strip>; metadata: { openapi: { description: string; responses: { "200": { description: string; content: { "application/json": { schema: { type: "object"; properties: { status: { type: string; description: string; enum: boolean[]; }; }; required: string[]; }; }; }; }; }; }; }; }, { status: boolean; }>; resetPasswordPhoneNumber: import("better-auth").StrictEndpoint<"/phone-number/reset-password", { method: "POST"; body: import("zod").ZodObject<{ otp: import("zod").ZodString; phoneNumber: import("zod").ZodString; newPassword: import("zod").ZodString; }, import("zod/v4/core").$strip>; metadata: { openapi: { description: string; responses: { "200": { description: string; content: { "application/json": { schema: { type: "object"; properties: { status: { type: string; description: string; enum: boolean[]; }; }; required: string[]; }; }; }; }; }; }; }; }, { status: boolean; }>; }; schema: { user: { fields: { phoneNumber: { type: "string"; required: false; unique: true; sortable: true; returned: true; }; phoneNumberVerified: { type: "boolean"; required: false; returned: true; input: false; }; }; }; }; rateLimit: { pathMatcher(path: string): boolean; window: number; max: number; }[]; options: PhoneNumberOptions | undefined; $ERROR_CODES: { OTP_EXPIRED: import("better-auth").RawError<"OTP_EXPIRED">; INVALID_OTP: import("better-auth").RawError<"INVALID_OTP">; TOO_MANY_ATTEMPTS: import("better-auth").RawError<"TOO_MANY_ATTEMPTS">; INVALID_PHONE_NUMBER: import("better-auth").RawError<"INVALID_PHONE_NUMBER">; PHONE_NUMBER_EXIST: import("better-auth").RawError<"PHONE_NUMBER_EXIST">; PHONE_NUMBER_NOT_EXIST: import("better-auth").RawError<"PHONE_NUMBER_NOT_EXIST">; INVALID_PHONE_NUMBER_OR_PASSWORD: import("better-auth").RawError<"INVALID_PHONE_NUMBER_OR_PASSWORD">; UNEXPECTED_ERROR: import("better-auth").RawError<"UNEXPECTED_ERROR">; OTP_NOT_FOUND: import("better-auth").RawError<"OTP_NOT_FOUND">; PHONE_NUMBER_NOT_VERIFIED: import("better-auth").RawError<"PHONE_NUMBER_NOT_VERIFIED">; PHONE_NUMBER_CANNOT_BE_UPDATED: import("better-auth").RawError<"PHONE_NUMBER_CANNOT_BE_UPDATED">; SEND_OTP_NOT_IMPLEMENTED: import("better-auth").RawError<"SEND_OTP_NOT_IMPLEMENTED">; }; }; //# sourceMappingURL=phone-number.d.ts.map