import { Addon } from './shared.js'; interface HerokuClient { get(path: string, options?: any): Promise; post(path: string, options?: any): Promise; request(url: string, options?: any): Promise; } interface Context { [key: string]: any; app: string; } interface WaitStatus { 'deprovisioned?'?: boolean; 'error?'?: boolean; 'healthy?': boolean; message: string; 'missing?'?: boolean; 'waiting?': boolean; } interface RequestParams { [key: string]: any; accept?: string; body?: any; host?: string; method?: string; path?: string; } declare class HerokuKafkaClusters { app: string; context: Context; env: any; heroku: HerokuClient; constructor(heroku: HerokuClient, env: any, context: Context); request(params: RequestParams): Promise; waitStatus(addon: Addon | null): Promise; } declare function withCluster(heroku: HerokuClient, app: string, cluster: string | undefined, fn: (addon: Addon) => Promise): Promise; declare function topicConfig(heroku: HerokuClient, addonId: string, topic: string): Promise; declare function fetchProvisionedInfo(heroku: HerokuClient, addon: Addon): Promise; declare function request(heroku: HerokuClient, params: RequestParams): Promise; export { fetchProvisionedInfo, HerokuKafkaClusters, request, topicConfig, withCluster, };