/**
 * Concrete Resource Adapter Implementations
 *
 * This module provides concrete adapter implementations for common
 * AWS CDK constructs (DynamoDB, SQS, SNS, S3, Cognito, EventBridge).
 *
 * @module declarative-api/adapter/concrete-adapters
 */
import type { ResourceMetadata, AdapterOptions, ITableResourceEntity, IQueueResourceEntity, ITopicResourceEntity, IBucketResourceEntity, ICognitoResourceEntity, IEventBusResourceEntity } from '../../../lib/runtime-web/types/declarative-api';
import { BaseResourceAdapter } from './base-adapter';
/**
 * Mock interface for DynamoDB Table construct.
 * In real usage, this would be aws-cdk-lib/aws-dynamodb.Table
 */
interface ITableConstruct {
    readonly tableName: string;
    readonly tableArn: string;
    readonly tableStreamArn?: string;
}
/**
 * Mock interface for SQS Queue construct.
 * In real usage, this would be aws-cdk-lib/aws-sqs.Queue
 */
interface IQueueConstruct {
    readonly queueUrl: string;
    readonly queueArn: string;
    readonly queueName: string;
    readonly fifo?: boolean;
    readonly deadLetterQueue?: {
        queue: IQueueConstruct;
    };
}
/**
 * Mock interface for SNS Topic construct.
 * In real usage, this would be aws-cdk-lib/aws-sns.Topic
 */
interface ITopicConstruct {
    readonly topicArn: string;
    readonly topicName: string;
    readonly fifo?: boolean;
}
/**
 * Mock interface for S3 Bucket construct.
 * In real usage, this would be aws-cdk-lib/aws-s3.Bucket
 */
interface IBucketConstruct {
    readonly bucketName: string;
    readonly bucketArn: string;
    readonly bucketWebsiteUrl?: string;
}
/**
 * Mock interface for Cognito UserPool construct.
 * In real usage, this would be aws-cdk-lib/aws-cognito.UserPool
 */
interface IUserPoolConstruct {
    readonly userPoolId: string;
    readonly userPoolArn: string;
    readonly userPoolProviderName: string;
}
/**
 * Mock interface for EventBridge EventBus construct.
 * In real usage, this would be aws-cdk-lib/aws-events.EventBus
 */
interface IEventBusConstruct {
    readonly eventBusName: string;
    readonly eventBusArn: string;
}
/**
 * Adapter for DynamoDB Table constructs.
 *
 * Validates: Requirements 13.1, 13.2, 13.3, 13.4
 */
export declare class TableAdapter extends BaseResourceAdapter<ITableConstruct, ITableResourceEntity> {
    readonly adapterType: "dynamodb";
    readonly resourceType: "dynamodb:table";
    canAdapt(construct: unknown): construct is ITableConstruct;
    protected createEntity(id: string, original: ITableConstruct, metadata: ResourceMetadata, _options?: AdapterOptions): ITableResourceEntity;
}
/**
 * Adapter for SQS Queue constructs.
 *
 * Validates: Requirements 13.1, 13.2, 13.3, 13.4
 */
export declare class QueueAdapter extends BaseResourceAdapter<IQueueConstruct, IQueueResourceEntity> {
    readonly adapterType: "sqs";
    readonly resourceType: "sqs:queue";
    canAdapt(construct: unknown): construct is IQueueConstruct;
    protected createEntity(id: string, original: IQueueConstruct, metadata: ResourceMetadata, _options?: AdapterOptions): IQueueResourceEntity;
}
/**
 * Adapter for SNS Topic constructs.
 *
 * Validates: Requirements 13.1, 13.2, 13.3, 13.4
 */
export declare class TopicAdapter extends BaseResourceAdapter<ITopicConstruct, ITopicResourceEntity> {
    readonly adapterType: "sns";
    readonly resourceType: "sns:topic";
    canAdapt(construct: unknown): construct is ITopicConstruct;
    protected createEntity(id: string, original: ITopicConstruct, metadata: ResourceMetadata, _options?: AdapterOptions): ITopicResourceEntity;
}
/**
 * Adapter for S3 Bucket constructs.
 *
 * Validates: Requirements 13.1, 13.2, 13.3, 13.4
 */
export declare class BucketAdapter extends BaseResourceAdapter<IBucketConstruct, IBucketResourceEntity> {
    readonly adapterType: "s3";
    readonly resourceType: "s3:bucket";
    canAdapt(construct: unknown): construct is IBucketConstruct;
    protected createEntity(id: string, original: IBucketConstruct, metadata: ResourceMetadata, _options?: AdapterOptions): IBucketResourceEntity;
}
/**
 * Adapter for Cognito UserPool constructs.
 *
 * Validates: Requirements 13.1, 13.2, 13.3, 13.4
 */
export declare class CognitoAdapter extends BaseResourceAdapter<IUserPoolConstruct, ICognitoResourceEntity> {
    readonly adapterType: "cognito";
    readonly resourceType: "cognito:userpool";
    canAdapt(construct: unknown): construct is IUserPoolConstruct;
    protected createEntity(id: string, original: IUserPoolConstruct, metadata: ResourceMetadata, _options?: AdapterOptions): ICognitoResourceEntity;
}
/**
 * Adapter for EventBridge EventBus constructs.
 *
 * Validates: Requirements 13.1, 13.2, 13.3, 13.4
 */
export declare class EventBusAdapter extends BaseResourceAdapter<IEventBusConstruct, IEventBusResourceEntity> {
    readonly adapterType: "events";
    readonly resourceType: "events:eventbus";
    canAdapt(construct: unknown): construct is IEventBusConstruct;
    protected createEntity(id: string, original: IEventBusConstruct, metadata: ResourceMetadata, _options?: AdapterOptions): IEventBusResourceEntity;
}
export {};
