import { VuexModule } from "vuex-module-decorators";
import { Task } from "../types/Task";
import { CreateTaskDto } from "../http/dto/CreateTaskDto";
import { CreateNoteDto } from "../http/dto/CreateNoteDto";
import { UpdateTaskDto } from "../http/dto/UpdateTaskDto";
import { AddCommentDto } from "../http/dto/AddCommentDto";
import { LoadTasksPayload } from "../http/dto/LoadTasksPayload";
import { Manager } from "../../../types/Manager";
export declare class TaskModule extends VuexModule {
    tasks: Task[];
    totalCount: number;
    orderName: string | null;
    isInitialisedWebsocket: boolean;
    setInitializeWebsocket(): void;
    addTaskToList(task: Task): void;
    updateTaskInList(changedModel: Task): void;
    removeTaskFromList(taskId: number): void;
    setOrderName(value: string | null): void;
    setTotalCount(value: number): void;
    setTasks(tasks: Task[]): void;
    infinityLoadTasks(payload: LoadTasksPayload): Promise<Task[]>;
    loadTasks(payload: LoadTasksPayload): Promise<Task[]>;
    createTask(dto: CreateTaskDto | CreateNoteDto): Promise<Task>;
    updateTask(dto: UpdateTaskDto): Promise<void>;
    removeTask(taskId: number): Promise<void>;
    toggleStatus(taskId: number): Promise<Task>;
    addComment(payload: AddCommentDto): Promise<void>;
    initWebsocket(user: Manager): Promise<void>;
}
