import { WithOptionalUserId } from "../../../../../fd-toolbox/base-resource/with-optional-user-id";
import { WithId } from "../../../../../fd-toolbox-core/types/resource-with-id";
import { PropertyRelationSyncInfo } from "../../../crud/property-relation-sync-info";
/**
 * Information about Crud update configuration. Used as a parameter in {@link crudUpdate} function.
 */
export type ResourceForUpdate = (WithId & WithOptionalUserId) | WithId;
/**
 * Configuration interface for CRUD update operations.
 */
export interface CrudUpdateConfig<T extends ResourceForUpdate> extends WithOptionalUserId {
    /** Name of the resource being operated on */
    resourceName: string;
    /** Resource to be created or updated */
    resource: T;
    /** Configuration for synchronizing related resource properties */
    propertyRelationSyncInfos?: PropertyRelationSyncInfo[];
    /** Flag to indicate this is a create operation */
    isCreate?: boolean;
    /** Flag to enable upsert behavior */
    isUpsert?: boolean;
    /** Whether to throw an exception on operation failure */
    throwOnNonSuccess?: boolean;
    /** Flag indicating the operation is called from outside, for example through API */
    isCalledFromOutside?: boolean;
    /** Id of the user performing the operation */
    userId?: string;
}
/** @internal */
export declare function getCrudUpdateConfig<T extends ResourceForUpdate>(resource: T, resourceName: string, userId?: string): Promise<{
    resourceName: string;
    resource: T;
    userId: any;
}>;
/** @internal */
export declare function getWorkerBotCrudUpdateConfig<T extends ResourceForUpdate>(resource: T, resourceName: string): {
    resourceName: string;
    resource: T;
    userId: "979f8933-71b1-4df8-b691-566a901d3c76";
};
