import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ASTNode, ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
import { type DecoratedCommand, type CommandMetadata } from '../decorators';
export type FetchResponseType = 'text' | 'json' | 'html' | 'response' | 'blob' | 'arrayBuffer';
export interface FetchCommandInput {
    url: string;
    responseType: FetchResponseType;
    options: RequestInit;
}
export interface FetchCommandOutput {
    status: number;
    statusText: string;
    headers: Headers;
    data: any;
    url: string;
    duration: number;
}
export declare class FetchCommand implements DecoratedCommand {
    readonly name: string;
    readonly metadata: CommandMetadata;
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<FetchCommandInput>;
    execute(input: FetchCommandInput, context: TypedExecutionContext): Promise<FetchCommandOutput>;
    private parseURL;
    private parseResponseType;
    private parseRequestOptions;
    private parseHeaders;
    private parseBody;
    private handleResponse;
    private parseHTML;
    private dispatchEvent;
}
export declare const createFetchCommand: () => FetchCommand;
export default FetchCommand;
//# sourceMappingURL=fetch.d.ts.map