import { Sequelize, DataTypes, Model, Optional } from 'sequelize';
import { TaskAttributes } from './Task';
import { UserAttributes } from './User';
export interface PlanAttributes {
    id: number;
    task_id: number;
    user_id: number;
    plan_date: Date;
    plan_status: 'draft' | 'published';
    task_status: 'assigned' | 'started' | 'escalated' | 'completed' | 'released';
    is_highlight: boolean;
    is_active: boolean;
    assigned_by: number;
    is_draft: boolean;
    is_published: boolean;
    is_started?: boolean;
    stuck_comments?: string;
    plan_released?: boolean;
    is_escalated?: boolean;
}
interface PlanCreationAttributes extends Optional<PlanAttributes, 'id'> {
}
export declare class Plan extends Model<PlanAttributes, PlanCreationAttributes> implements PlanAttributes {
    static associate(models: any): void;
    id: number;
    task_id: number;
    user_id: number;
    plan_date: Date;
    plan_status: 'draft' | 'published';
    task_status: 'assigned' | 'started' | 'escalated' | 'completed' | 'released';
    is_highlight: boolean;
    is_active: boolean;
    assigned_by: number;
    is_draft: boolean;
    is_published: boolean;
    is_started?: boolean;
    stuck_comments?: string;
    plan_released?: boolean;
    is_escalated?: boolean;
    task?: TaskAttributes;
    user?: UserAttributes;
    assigner?: UserAttributes;
    toJSON(): PlanAttributes & {
        task?: TaskAttributes;
        user?: UserAttributes;
        assigner?: UserAttributes;
    };
}
declare const _default: (sequelize: Sequelize, dataTypes: typeof DataTypes) => typeof Plan;
export default _default;
