import type { Tool } from '@pellux/goodvibes-sdk/platform/types/tools';
import type { FetchInput } from '@pellux/goodvibes-sdk/platform/tools/fetch/schema';
import type { FetchOutput, FetchUrlResult } from '@pellux/goodvibes-sdk/platform/tools/fetch/types';
import type { ServiceRegistry } from '../../config/service-registry.js';
import type { FeatureFlagManager } from '@pellux/goodvibes-sdk/platform/runtime/feature-flags/index';
export interface FetchRuntimeDeps {
    readonly serviceRegistry?: Pick<ServiceRegistry, 'resolveAuth'> | null;
    readonly featureFlags?: Pick<FeatureFlagManager, 'isEnabled'> | null;
}
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