import { ResourceRecordSet } from '@aws-sdk/client-route-53';
import { Connector, SelectedEdge } from '@infrascan/shared-types';

type AliasRecordsByService = {
    cloudfront: ResourceRecordSet[];
    s3: ResourceRecordSet[];
    apiGateway: ResourceRecordSet[];
    elb: ResourceRecordSet[];
};
declare function aggregateRoute53RecordsByConnectedService(route53Records: ResourceRecordSet[]): Promise<AliasRecordsByService>;
declare function resolveCloudfrontEdges(cloudfrontConnectedDomains: ResourceRecordSet[], stateConnector: Connector): Promise<SelectedEdge[]>;
declare function resolveS3Edges(s3ConnectedDomains: ResourceRecordSet[], stateConnector: Connector): Promise<SelectedEdge[]>;
declare function resolveElbEdges(elbConnectedDomains: ResourceRecordSet[], stateConnector: Connector): Promise<SelectedEdge[]>;
declare function resolveSnsEdges(route53Records: ResourceRecordSet[], stateConnector: Connector): Promise<SelectedEdge[]>;
declare function getEdges(stateConnector: Connector): Promise<SelectedEdge[]>;

export { aggregateRoute53RecordsByConnectedService, getEdges, resolveCloudfrontEdges, resolveElbEdges, resolveS3Edges, resolveSnsEdges };
