import { OrPromise } from '@sphereon/ssi-types';
import { DataSource } from 'typeorm';
import { AbstractContactStore } from './AbstractContactStore';
import { AddElectronicAddressArgs, AddIdentityArgs, AddPartyArgs, AddPartyTypeArgs, AddPhysicalAddressArgs, AddRelationshipArgs, ElectronicAddress, GetElectronicAddressArgs, GetElectronicAddressesArgs, GetIdentitiesArgs, GetIdentityArgs, GetPartiesArgs, GetPartyArgs, GetPartyTypeArgs, GetPartyTypesArgs, GetPhysicalAddressArgs, GetPhysicalAddressesArgs, GetRelationshipArgs, GetRelationshipsArgs, Identity, Party, PartyRelationship, PartyType, PhysicalAddress, RemoveElectronicAddressArgs, RemoveIdentityArgs, RemovePartyArgs, RemovePartyTypeArgs, RemovePhysicalAddressArgs, RemoveRelationshipArgs, UpdateElectronicAddressArgs, UpdateIdentityArgs, UpdatePartyArgs, UpdatePartyTypeArgs, UpdatePhysicalAddressArgs, UpdateRelationshipArgs } from '../types';
export declare class ContactStore extends AbstractContactStore {
    private readonly dbConnection;
    constructor(dbConnection: OrPromise<DataSource>);
    getParty: (args: GetPartyArgs) => Promise<Party>;
    getParties: (args?: GetPartiesArgs) => Promise<Array<Party>>;
    addParty: (args: AddPartyArgs) => Promise<Party>;
    updateParty: (args: UpdatePartyArgs) => Promise<Party>;
    removeParty: (args: RemovePartyArgs) => Promise<void>;
    getIdentity: (args: GetIdentityArgs) => Promise<Identity>;
    getIdentities: (args?: GetIdentitiesArgs) => Promise<Array<Identity>>;
    addIdentity: (args: AddIdentityArgs) => Promise<Identity>;
    updateIdentity: (args: UpdateIdentityArgs) => Promise<Identity>;
    removeIdentity: (args: RemoveIdentityArgs) => Promise<void>;
    addRelationship: (args: AddRelationshipArgs) => Promise<PartyRelationship>;
    getRelationship: (args: GetRelationshipArgs) => Promise<PartyRelationship>;
    getRelationships: (args?: GetRelationshipsArgs) => Promise<Array<PartyRelationship>>;
    updateRelationship: (args: UpdateRelationshipArgs) => Promise<PartyRelationship>;
    removeRelationship: (args: RemoveRelationshipArgs) => Promise<void>;
    addPartyType: (args: AddPartyTypeArgs) => Promise<PartyType>;
    getPartyType: (args: GetPartyTypeArgs) => Promise<PartyType>;
    getPartyTypes: (args?: GetPartyTypesArgs) => Promise<Array<PartyType>>;
    updatePartyType: (args: UpdatePartyTypeArgs) => Promise<PartyType>;
    removePartyType: (args: RemovePartyTypeArgs) => Promise<void>;
    getElectronicAddress: (args: GetElectronicAddressArgs) => Promise<ElectronicAddress>;
    getElectronicAddresses: (args?: GetElectronicAddressesArgs) => Promise<Array<ElectronicAddress>>;
    addElectronicAddress: (args: AddElectronicAddressArgs) => Promise<ElectronicAddress>;
    updateElectronicAddress: (args: UpdateElectronicAddressArgs) => Promise<ElectronicAddress>;
    removeElectronicAddress: (args: RemoveElectronicAddressArgs) => Promise<void>;
    getPhysicalAddress: (args: GetPhysicalAddressArgs) => Promise<PhysicalAddress>;
    getPhysicalAddresses: (args?: GetPhysicalAddressesArgs) => Promise<Array<PhysicalAddress>>;
    addPhysicalAddress: (args: AddPhysicalAddressArgs) => Promise<PhysicalAddress>;
    updatePhysicalAddress: (args: UpdatePhysicalAddressArgs) => Promise<PhysicalAddress>;
    removePhysicalAddress: (args: RemovePhysicalAddressArgs) => Promise<void>;
    private hasCorrectConnectionConfig;
    private hasCorrectPartyType;
    private deleteIdentities;
    private deleteElectronicAddresses;
    private deletePhysicalAddresses;
    private assertRelationshipSides;
    private buildFilters;
    private processCondition;
    private buildMetadataCondition;
}
//# sourceMappingURL=ContactStore.d.ts.map