import type { JsonValue } from '../control-plane';
import type { QueueExecutionContext } from '../queue';
import type { DataAction, DataService } from './model';
import type { DataServiceAdapter } from './service';
export interface DataProviderTransport {
    observe(id: string): Promise<Record<string, JsonValue>>;
    apply(input: Record<string, JsonValue>, credential?: string): Promise<Record<string, JsonValue>>;
    execute(id: string, action: DataAction, input: Record<string, JsonValue>, credential?: string, context?: QueueExecutionContext): Promise<Record<string, JsonValue>>;
}
declare abstract class TransportAdapter implements DataServiceAdapter {
    protected transport: DataProviderTransport;
    abstract provider: DataService['provider'];
    abstract engines: DataService['engine'][];
    constructor(transport: DataProviderTransport);
    observe(service: DataService): Promise<Record<string, JsonValue>>;
    apply(service: DataService, credential?: string): Promise<Record<string, JsonValue>>;
    action(service: DataService, action: DataAction, input: Record<string, JsonValue>, credential: string | undefined, context: QueueExecutionContext): Promise<Record<string, JsonValue>>;
}
export declare class AwsRdsDataAdapter extends TransportAdapter {
    provider: 'aws_rds';
    engines: DataService['engine'][];
}
export declare class AwsAuroraDataAdapter extends TransportAdapter {
    provider: 'aws_aurora';
    engines: DataService['engine'][];
}
export declare class AwsElastiCacheDataAdapter extends TransportAdapter {
    provider: 'aws_elasticache';
    engines: DataService['engine'][];
}
export declare class ServerDataAdapter extends TransportAdapter {
    provider: 'server';
    engines: DataService['engine'][];
}
export declare class ContainerDataAdapter extends TransportAdapter {
    provider: 'container';
    engines: DataService['engine'][];
}
export {};
