import Context from "../context/context";
export interface ParseResult<T, TT, A = any> {
    result: Array<T>;
    tag: TT;
    additionalResult?: A;
}
export interface Parser<T, TT> {
    parse(ctx: Context, tag: any, payload: any): Promise<[ParseResult<T, TT> | null, Error | null]>;
    setDependencyResolver(hook: (ctx: Context, self: Array<any>, ids: Array<string>, args: Record<string, any>) => Promise<Array<any>>): void;
    setup(ctx: Context): void;
}
