import { Attribute, ChangedMetric, Metric, Property, Resource, Service, SpecDatabase, SpecDatabaseDiff, TypeDefinition, UpdatedAttribute, UpdatedProperty, UpdatedResource, UpdatedService, UpdatedTypeDefinition, MapDiff, Event, EventTypeDefinition, EventProperty, UpdatedEvent, UpdatedEventTypeDefinition, UpdatedEventProperty } from '@aws-cdk/service-spec-types'; export declare class DbDiff { private readonly db1; private readonly db2; constructor(db1: SpecDatabase, db2: SpecDatabase); diff(): SpecDatabaseDiff; diffService(a: Service, b: Service): UpdatedService | undefined; diffServiceEvents(a: Service, b: Service): UpdatedService['eventDiff']; diffServiceMetrics(a: Service, b: Service): UpdatedService['metrics']; diffResourceMetrics(a: Resource, b: Resource): UpdatedResource['metrics']; diffMetrics(a: Metric[], b: Metric[]): MapDiff | undefined; private diffMetric; private diffMetricDimensionSets; private diffDimensionSet; diffServiceResources(a: Service, b: Service): UpdatedService['resourceDiff']; diffResource(a: Resource, b: Resource): UpdatedResource | undefined; diffAttribute(a: Attribute, b: Attribute): UpdatedAttribute | undefined; diffProperty(a: Property, b: Property): UpdatedProperty | undefined; diffResourceTypeDefinitions(a: Resource, b: Resource): UpdatedResource['typeDefinitionDiff']; diffTypeDefinition(a: TypeDefinition, b: TypeDefinition): UpdatedTypeDefinition | undefined; diffResourceEvents(a: Resource, b: Resource): UpdatedResource['events']; diffEvent(a: Event, b: Event): UpdatedEvent | undefined; diffEventTypeDefinitions(a: Event, b: Event): UpdatedEvent['typeDefinitionDiff']; diffEventTypeDefinition(a: EventTypeDefinition, b: EventTypeDefinition): UpdatedEventTypeDefinition | undefined; diffEventProperty(a: EventProperty, b: EventProperty): UpdatedEventProperty | undefined; /** * Compare event property types by stringifying them. * Event property types reference EventTypeDefinition, not TypeDefinition. */ private eqEventPropertyType; private eqEventRootProperty; private eqEventResourcesField; /** * Stringify a generic property type for comparison. */ private stringifyGenericType; /** * Tricky -- we have to deep-compare all the type references which will have different ids in * different databases. * * Solve it by doing a string-render and comparing those (for now). */ private eqType; } export type DontCareAboutTypes = { [k in keyof A]: unknown; };