import { Task } from '../task'; import { Stream } from '@andyfischer/streams'; export type TaskCallback = (task: Task) => Stream; export interface HandlerTag { attr: string; isParameter: boolean; isRequired?: boolean; requiresValue?: boolean; assumeInclude?: boolean; isOutput?: boolean; expectedType?: 'integer' | 'boolean' | 'string'; isPositional?: boolean; } export declare class Handler { t: string; tags: HandlerTag[]; run: TaskCallback; primaryAttr?: string; byAttr: Map; frozen: boolean; constructor(tags: HandlerTag[]); setCallback(callback: TaskCallback): void; freeze(): void; compile(): void; hasAttr(attr: string): boolean; requiresAttr(attr: string): boolean; requiresValue(attr: string): boolean; getTag(attr: string): HandlerTag; without(attr: string): Handler; withParameter(attr: string): Handler; addTag(tag: HandlerTag): Handler; withCallback(callback: TaskCallback): Handler; getParamAttrs(): string[]; toDeclString(): string; }