import type { Tool } from '../../types/tools.js';
import type { FetchInput } from './schema.js';
import type { FetchOutput, FetchUrlResult } from './types.js';
import type { ServiceRegistry } from '../../config/service-registry.js';
import type { FeatureFlagManager } from '../../runtime/feature-flags/index.js';
export interface FetchRuntimeDeps {
    readonly serviceRegistry?: Pick<ServiceRegistry, 'resolveAuth'> | null | undefined;
    readonly featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null | undefined;
}
interface CacheEntry {
    data: FetchUrlResult;
    timestamp: number;
    ttl: number;
}
export declare class FetchRuntimeService {
    private readonly responseCache;
    private cacheWriteCount;
    getCached(key: string, cacheTtlSeconds: number): FetchUrlResult | null;
    cacheSet(key: string, entry: CacheEntry): void;
    execute(input: FetchInput, deps?: FetchRuntimeDeps): Promise<FetchOutput>;
}
export declare function executeFetchInput(input: FetchInput, deps?: FetchRuntimeDeps): Promise<FetchOutput>;
export declare function createFetchTool(deps?: FetchRuntimeDeps, runtime?: FetchRuntimeService): Tool;
export {};
//# sourceMappingURL=runtime.d.ts.map