import { Nullable } from "../..";
import { IEntityCopyOptionsBuilder } from "./entity-copy-options-builder";
import { IPropertyCopyOption } from "./property-copy-option";
import { IRelationCopyOption } from "./relation-copy-option";
/**
 * Represents options for copying an entity.
 */
export interface IEntityCopyOptions {
    /**
     * Gets or sets the copy profile identifier.
     */
    copyProfileIdentifier: Nullable<string>;
    /**
     * Gets or sets the copy profile id.
     */
    copyProfileId: Nullable<number>;
    /**
     * Gets or sets the id of the destination entity.
     */
    destinationEntityId: Nullable<number>;
    /**
     * Gets or sets the relation copy options.
     */
    relationCopyOptions: Nullable<Array<IRelationCopyOption>>;
    /**
     * Gets or sets the property copy options.
     */
    propertyCopyOptions: Nullable<Array<IPropertyCopyOption>>;
    /**
     * Creates a {@link IEntityCopyOptionsBuilder} from the current {@link IEntityCopyOptions}.
     * The builder can extend or overwrite the configuration of the current {@link IEntityCopyOptions}.
     */
    builder(): IEntityCopyOptionsBuilder;
}
export declare class EntityCopyOptions implements IEntityCopyOptions {
    /**
     * {@inheritDoc}
     */
    copyProfileIdentifier: Nullable<string>;
    /**
     * {@inheritDoc}
     */
    copyProfileId: Nullable<number>;
    /**
     * {@inheritDoc}
     */
    destinationEntityId: Nullable<number>;
    /**
     * {@inheritDoc}
     */
    relationCopyOptions: Nullable<Array<IRelationCopyOption>>;
    /**
     * {@inheritDoc}
     */
    propertyCopyOptions: Nullable<Array<IPropertyCopyOption>>;
    /**
     * {@inheritDoc}
     */
    builder(): IEntityCopyOptionsBuilder;
}
