import type { JsonValue } from '../control-plane';
import type { QueueExecutionContext } from '../queue';
import type { DataProviderTransport } from './adapters';
import type { DataAction } from './model';
import { ElastiCacheClient } from '../aws/elasticache';
import { RDSClient } from '../aws/rds';
type Input = Record<string, JsonValue>;
export declare class AwsRdsTransport implements DataProviderTransport {
    private readonly client;
    constructor(client?: RDSClient);
    observe(id: string): Promise<Input>;
    apply(input: Input, credential?: string): Promise<Input>;
    execute(id: string, action: DataAction, input: Input, credential?: string, _context?: QueueExecutionContext): Promise<Input>;
}
export declare class AwsAuroraTransport implements DataProviderTransport {
    private readonly client;
    constructor(client?: RDSClient);
    observe(id: string): Promise<Input>;
    apply(input: Input, credential?: string): Promise<Input>;
    execute(id: string, action: DataAction, input: Input, credential?: string): Promise<Input>;
}
export declare class AwsElastiCacheTransport implements DataProviderTransport {
    private readonly client;
    constructor(client?: ElastiCacheClient);
    observe(id: string): Promise<Input>;
    apply(input: Input): Promise<Input>;
    execute(id: string, action: DataAction, input: Input): Promise<Input>;
}
export {};
