import { z } from "zod";
export declare const SignupRequest: z.ZodObject<{
    email: z.ZodString;
    password: z.ZodString;
    name: z.ZodString;
}, "strip", z.ZodTypeAny, {
    password: string;
    email: string;
    name: string;
}, {
    password: string;
    email: string;
    name: string;
}>;
export type SignupRequest = z.infer<typeof SignupRequest>;
export declare const SignupResponse: z.ZodObject<{
    userId: z.ZodString;
    verificationLink: z.ZodString;
}, "strip", z.ZodTypeAny, {
    userId: string;
    verificationLink: string;
}, {
    userId: string;
    verificationLink: string;
}>;
export type SignupResponse = z.infer<typeof SignupResponse>;
export declare const VerifyEmailRequest: z.ZodObject<{
    token: z.ZodString;
}, "strip", z.ZodTypeAny, {
    token: string;
}, {
    token: string;
}>;
export declare const LoginRequest: z.ZodObject<{
    email: z.ZodString;
    password: z.ZodString;
    deviceLabel: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    password: string;
    email: string;
    deviceLabel?: string | undefined;
}, {
    password: string;
    email: string;
    deviceLabel?: string | undefined;
}>;
export type LoginRequest = z.infer<typeof LoginRequest>;
export declare const AuthTokens: z.ZodObject<{
    accessToken: z.ZodString;
    refreshToken: z.ZodString;
    expiresIn: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    accessToken: string;
    refreshToken: string;
    expiresIn: number;
}, {
    accessToken: string;
    refreshToken: string;
    expiresIn: number;
}>;
export type AuthTokens = z.infer<typeof AuthTokens>;
export declare const AuthSession: z.ZodObject<{
    user: z.ZodObject<{
        id: z.ZodNumber;
        email: z.ZodString;
        emailVerifiedAt: z.ZodNullable<z.ZodString>;
        name: z.ZodString;
        username: z.ZodString;
        avatarUrl: z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodString]>>;
        tz: z.ZodString;
        createdAt: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: number;
        email: string;
        emailVerifiedAt: string | null;
        name: string;
        username: string;
        avatarUrl: string | null;
        tz: string;
        createdAt: string;
    }, {
        id: number;
        email: string;
        emailVerifiedAt: string | null;
        name: string;
        username: string;
        avatarUrl: string | null;
        tz: string;
        createdAt: string;
    }>;
    tokens: z.ZodObject<{
        accessToken: z.ZodString;
        refreshToken: z.ZodString;
        expiresIn: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        accessToken: string;
        refreshToken: string;
        expiresIn: number;
    }, {
        accessToken: string;
        refreshToken: string;
        expiresIn: number;
    }>;
}, "strip", z.ZodTypeAny, {
    user: {
        id: number;
        email: string;
        emailVerifiedAt: string | null;
        name: string;
        username: string;
        avatarUrl: string | null;
        tz: string;
        createdAt: string;
    };
    tokens: {
        accessToken: string;
        refreshToken: string;
        expiresIn: number;
    };
}, {
    user: {
        id: number;
        email: string;
        emailVerifiedAt: string | null;
        name: string;
        username: string;
        avatarUrl: string | null;
        tz: string;
        createdAt: string;
    };
    tokens: {
        accessToken: string;
        refreshToken: string;
        expiresIn: number;
    };
}>;
export type AuthSession = z.infer<typeof AuthSession>;
export declare const RefreshRequest: z.ZodObject<{
    refreshToken: z.ZodString;
}, "strip", z.ZodTypeAny, {
    refreshToken: string;
}, {
    refreshToken: string;
}>;
export declare const RequestMagicLinkRequest: z.ZodObject<{
    email: z.ZodString;
}, "strip", z.ZodTypeAny, {
    email: string;
}, {
    email: string;
}>;
export declare const ConsumeMagicLinkRequest: z.ZodObject<{
    token: z.ZodString;
}, "strip", z.ZodTypeAny, {
    token: string;
}, {
    token: string;
}>;
export declare const RequestPasswordResetRequest: z.ZodObject<{
    email: z.ZodString;
}, "strip", z.ZodTypeAny, {
    email: string;
}, {
    email: string;
}>;
export declare const ConfirmPasswordResetRequest: z.ZodObject<{
    token: z.ZodString;
    newPassword: z.ZodString;
}, "strip", z.ZodTypeAny, {
    token: string;
    newPassword: string;
}, {
    token: string;
    newPassword: string;
}>;
export declare const DeviceSession: z.ZodObject<{
    id: z.ZodNumber;
    deviceLabel: z.ZodNullable<z.ZodString>;
    ip: z.ZodNullable<z.ZodString>;
    userAgent: z.ZodNullable<z.ZodString>;
    createdAt: z.ZodString;
    isCurrent: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    id: number;
    createdAt: string;
    deviceLabel: string | null;
    ip: string | null;
    userAgent: string | null;
    isCurrent: boolean;
}, {
    id: number;
    createdAt: string;
    deviceLabel: string | null;
    ip: string | null;
    userAgent: string | null;
    isCurrent: boolean;
}>;
export type DeviceSession = z.infer<typeof DeviceSession>;
export declare const DeviceListResponse: z.ZodObject<{
    sessions: z.ZodArray<z.ZodObject<{
        id: z.ZodNumber;
        deviceLabel: z.ZodNullable<z.ZodString>;
        ip: z.ZodNullable<z.ZodString>;
        userAgent: z.ZodNullable<z.ZodString>;
        createdAt: z.ZodString;
        isCurrent: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        id: number;
        createdAt: string;
        deviceLabel: string | null;
        ip: string | null;
        userAgent: string | null;
        isCurrent: boolean;
    }, {
        id: number;
        createdAt: string;
        deviceLabel: string | null;
        ip: string | null;
        userAgent: string | null;
        isCurrent: boolean;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    sessions: {
        id: number;
        createdAt: string;
        deviceLabel: string | null;
        ip: string | null;
        userAgent: string | null;
        isCurrent: boolean;
    }[];
}, {
    sessions: {
        id: number;
        createdAt: string;
        deviceLabel: string | null;
        ip: string | null;
        userAgent: string | null;
        isCurrent: boolean;
    }[];
}>;
//# sourceMappingURL=auth.d.ts.map