export interface Category {
    id: string;
    name: string;
    color: string;
    order: number;
    createdAt: number;
    updatedAt: number;
}
export interface Task {
    id: string;
    title: string;
    description: string;
    categoryId: string;
    priority: 'none' | 'low' | 'medium' | 'high' | 'critical';
    completed: boolean;
    dueDate: number;
    dueTime: string;
    endTime: string;
    assigneeId: string | null;
    createdAt: number;
    updatedAt: number;
    subtasks?: Subtask[];
}
export interface Subtask {
    id: string;
    taskId: string;
    title: string;
    completed: boolean;
    order: number;
    createdAt: number;
    updatedAt: number;
}
export interface UserSettings {
    darkMode: boolean;
    notifications: boolean;
    reminderTime: string;
    defaultCategory: string | null;
    sortBy: 'dueDate' | 'priority' | 'title' | 'createdAt';
    sortOrder: 'asc' | 'desc';
}
export interface User {
    id: string;
    username: string;
    settings: UserSettings;
    createdAt: number;
}
export interface SyncResponse {
    categories: Category[];
    tasks: Task[];
    subtasks: Subtask[];
    timestamp: number;
}
export interface PushChangesRequest {
    changes: {
        categories: Category[];
        tasks: Task[];
        subtasks: Subtask[];
    };
    lastPulledAt: number;
}
export interface PushChangesResponse {
    success: boolean;
    timestamp: number;
    conflicts: Array<{
        entity: string;
        id: string;
        serverVersion: any;
        clientVersion: any;
        resolution: 'server_wins' | 'client_wins' | 'merge';
    }>;
}
export interface AuthPayload {
    userId: string;
    username: string;
}
declare global {
    namespace Express {
        interface Request {
            user?: AuthPayload;
        }
    }
}
//# sourceMappingURL=index.d.ts.map