import { CompositeKey } from '@memberjunction/core';
import { PubSubEngine } from 'type-graphql';
import { AppContext } from '../types.js';
import { CompositeKeyInputType, CompositeKeyOutputType } from '../generic/KeyInputOutputTypes.js';
export declare class EntityDependencyResult {
    EntityName: string;
    RelatedEntityName: string;
    FieldName: string;
}
export declare class EntityDependencyResolver {
    GetEntityDependencies(entityName: string, { dataSource, userPayload, providers }: AppContext, pubSub: PubSubEngine): Promise<import("@memberjunction/core").EntityDependency[]>;
}
export declare class RecordDependencyResult {
    EntityName: string;
    RelatedEntityName: string;
    FieldName: string;
    CompositeKey: CompositeKey;
}
export declare class RecordDependencyResolver {
    GetRecordDependencies(entityName: string, ckInput: CompositeKeyInputType, { dataSource, userPayload, providers }: AppContext, pubSub: PubSubEngine): Promise<{
        EntityName: string;
        RelatedEntityName: string;
        FieldName: string;
        CompositeKey: CompositeKey;
    }[]>;
}
declare class FieldMapping {
    FieldName: string;
    Value: string;
}
declare class FieldMappingOutput {
    FieldName: string;
    Value: string;
}
export declare class RecordMergeRequest {
    EntityName: string;
    SurvivingRecordCompositeKey: CompositeKey;
    RecordsToMerge: CompositeKey[];
    FieldMap?: FieldMapping[];
}
export declare class RecordMergeRequestOutput {
    EntityName: string;
    SurvivingRecordID: number;
    RecordsToMerge: number[];
    FieldMap?: FieldMappingOutput[];
}
export declare class RecordMergeDetailResult {
    CompositeKey: CompositeKeyOutputType;
    Success: boolean;
    RecordMergeDeletionLogID?: number;
    Message?: string;
}
export declare class RecordMergeResult {
    Success: boolean;
    OverallStatus: string;
    RecordMergeLogID: number;
    RecordStatus: RecordMergeDetailResult[];
    Request: RecordMergeRequestOutput;
}
export declare class RecordMergeResolver {
    MergeRecords(request: RecordMergeRequest, { dataSource, userPayload, providers }: AppContext, pubSub: PubSubEngine): Promise<import("@memberjunction/core").RecordMergeResult>;
}
export default EntityDependencyResolver;
//# sourceMappingURL=MergeRecordsResolver.d.ts.map