import { Sequelize, DataTypes, Model, Optional } from 'sequelize';
import { UserAttributes } from './User';
import { ClientMasterAttributes } from './client_master';
import { ProjectMasterAttributes } from './project_master';
export interface TaskAttributes {
    id: number;
    client_id: number;
    project_id: number;
    task_type: 'planned' | 'adhoc';
    priority: boolean;
    title: string;
    description: string;
    close_notes: string | null;
    difficulty: 'easy' | 'challenging';
    ai_use: boolean;
    assigned_to?: number;
    status: 'pending' | 'assigned' | 'started' | 'escalated' | 'completed' | 'released';
    is_released?: boolean;
    created_by: number;
    is_active?: boolean;
    is_task_assigned?: boolean;
    task_released?: boolean;
    escalated_date?: Date;
    is_adhoc?: boolean;
    never_assigned?: boolean;
    hours?: number;
}
interface TaskCreationAttributes extends Optional<TaskAttributes, 'id'> {
}
export declare class Task extends Model<TaskAttributes, TaskCreationAttributes> implements TaskAttributes {
    static associate(models: any): void;
    id: number;
    client_id: number;
    project_id: number;
    task_type: 'planned' | 'adhoc';
    priority: boolean;
    title: string;
    description: string;
    close_notes: string | null;
    difficulty: 'easy' | 'challenging';
    ai_use: boolean;
    assigned_to?: number;
    status: 'pending' | 'assigned' | 'started' | 'escalated' | 'completed' | 'released';
    is_released: boolean;
    is_active: boolean;
    created_by: number;
    is_task_assigned?: boolean;
    task_released?: boolean;
    escalated_date?: Date;
    is_adhoc?: boolean;
    assignee?: UserAttributes;
    client?: ClientMasterAttributes;
    project?: ProjectMasterAttributes;
    never_assigned?: boolean;
    hours?: number;
    toJSON(): TaskAttributes & {
        assignee?: UserAttributes;
        client?: ClientMasterAttributes;
        project?: ProjectMasterAttributes;
    };
}
declare const _default: (sequelize: Sequelize, dataTypes: typeof DataTypes) => typeof Task;
export default _default;
