import { Task } from "../Task";
import { s } from "bknd/utils";
export declare class FetchTask<Output extends Record<string, any>> extends Task<typeof FetchTask.schema, Output> {
    type: string;
    static schema: s.ObjectSchema<{
        readonly url: s.StringSchema<{
            readonly pattern: "^(http|https)://";
        }> & {
            readonly pattern: "^(http|https)://";
        };
        readonly method: {
            readonly default: "GET";
            readonly enum: string[];
        } & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
        readonly headers: {
            default?: any;
            enum?: (readonly any[] | any[]) | undefined;
            const?: any;
            $defs?: Record<string, s.Schema> | undefined;
            contains?: s.Schema | undefined;
            minContains?: number | undefined;
            maxContains?: number | undefined;
            prefixItems?: s.Schema[] | undefined;
            uniqueItems?: boolean | undefined;
            maxItems?: number | undefined;
            minItems?: number | undefined;
            readonly items?: s.ObjectSchema<{
                readonly key: s.StringSchema<s.IStringOptions> & s.IStringOptions;
                readonly value: s.StringSchema<s.IStringOptions> & s.IStringOptions;
            }, s.Merge<s.IObjectOptions & {
                additionalProperties: false;
            }>> | undefined;
        } & s.Schema<s.ISchemaOptions, {
            key: string;
            value: string;
        }[] | undefined, {
            key: string;
            value: string;
        }[] | undefined>;
        readonly body: {
            default?: any;
            maxLength?: number | undefined;
            minLength?: number | undefined;
            pattern?: (string | RegExp) | undefined;
            format?: string | undefined;
            enum?: (readonly any[] | any[]) | undefined;
            const?: any;
        } & s.Schema<s.ISchemaOptions, string | undefined, string | undefined>;
        readonly normal: {
            default?: any;
            enum?: (readonly any[] | any[]) | undefined;
            const?: any;
            multipleOf?: number | undefined;
            maximum?: number | undefined;
            exclusiveMaximum?: number | undefined;
            minimum?: number | undefined;
            exclusiveMinimum?: number | undefined;
        } & s.Schema<s.ISchemaOptions, number | undefined, number | undefined>;
    }, s.Merge<s.IObjectOptions & {
        additionalProperties: false;
    }>>;
    protected getBody(): string | undefined;
    execute(): Promise<Output>;
}
