type Task = {
    stop: () => void;
    start: () => void;
    isRunning: () => boolean;
};
interface ITaskManager {
    addTask(task: Task): void;
    addTasks(tasks: Task[]): void;
    startAll(): void;
    stopAll(): void;
}
type TCreateTaskProps<T> = {
    config: {
        url: string;
        interval: number;
        headers?: Record<string, string>;
    };
    onData: (data: {
        body: T;
        status_code: number;
    }) => void;
    onError?: (error: {
        error: string;
        status_code: number;
    }) => void;
};
declare global {
    var createTask: <T>(props: TCreateTaskProps<T>) => Task;
    var SyncTasksManager: ITaskManager;
}
export declare class SyncTasksManager {
    static instance: ITaskManager | null;
    static addTask(task: Task): void;
    static addTasks(tasks: Task[]): void;
    static startAll(): void;
    static stopAll(): void;
}
export declare const createTask: <T extends unknown>(props: TCreateTaskProps<T>) => Task;
export {};
//# sourceMappingURL=index.d.ts.map