export interface ApiResponse<T> {
    code: number;
    message: string;
    data: T | null;
}
export interface ApiResult<T> {
    data: T;
    message: string;
}
export interface ApiTokens {
    accessToken: string;
    refreshToken: string;
}
export type EmailCodePurpose = "register" | "login";
export type OAuthProvider = "google" | "github" | "wechat" | "qq";
export interface AuthUser {
    id?: string;
    email: string;
    emailVerified?: boolean;
    username?: string | null;
    nickname?: string | null;
    avatarUrl?: string | null;
    bio?: string | null;
    role?: string | null;
    status?: string | null;
    createdAt?: string;
    updatedAt?: string;
}
export interface LoginRequest {
    email: string;
    password: string;
}
export interface EmailCodeLoginRequest {
    email: string;
    verificationCode: string;
}
export interface RegisterRequest {
    email: string;
    password: string;
    verificationCode: string;
}
export interface SendEmailCodeRequest {
    email: string;
    purpose: EmailCodePurpose;
}
export interface UpdateProfileRequest {
    username?: string | null;
    nickname?: string | null;
    bio?: string | null;
}
export interface CommentItem {
    id: string;
    pageSlug: string;
    authorLabel: string;
    authorUsername?: string | null;
    authorAvatarUrl?: string | null;
    authorBio?: string | null;
    canEdit: boolean;
    canReply: boolean;
    parentId?: string | null;
    threadRootId: string;
    replyToCommentId?: string | null;
    replyToAuthorLabel?: string | null;
    content: string;
    status: string;
    lang: string;
    likeCount: number;
    createdAt: string;
}
export interface CreateCommentRequest {
    pageSlug: string;
    parentId?: string | null;
    content: string;
    lang?: string;
}
export interface BookmarkItem {
    id: string;
    pageSlug: string;
    pageTitle?: string | null;
    folder?: string | null;
    notes?: string | null;
    lang: string;
    createdAt: string;
}
export interface CreateBookmarkRequest {
    pageSlug: string;
    pageTitle?: string;
    folder?: string;
    notes?: string;
    lang?: string;
}
export interface TrackPageViewRequest {
    pageSlug: string;
    pageTitle?: string;
    lang?: string;
    path?: string;
    referrer?: string;
}
export interface TrackDurationRequest extends TrackPageViewRequest {
    durationSeconds: number;
}
//# sourceMappingURL=types.d.ts.map