import { type Binding } from '../../binding/models/Binding.js';
import { type InternalBindingConstraints } from '../../binding/models/BindingConstraintsImplementation.js';
import { type SingleImmutableLinkedList } from '../../common/models/SingleImmutableLinkedList.js';
import { type PlanServiceNodeBindingRemovedResult } from '../../metadata/models/PlanServiceNodeBindingRemovedResult.js';
import { type PlanServiceNode } from '../models/PlanServiceNode.js';
/**
 * Detach a binding to the root service node if it is context-free.
 * @param serviceNode The service node to attach the binding to.
 * @param binding The binding to attach.
 * @param bindingConstraintsList The list of binding constraints.
 * @param optionalBindings Whether the bindings are optional.
 * @returns True if the binding requires ancestor metadata, false otherwise.
 */
export declare function removeServiceNodeBindingIfContextFree(serviceNode: PlanServiceNode, binding: Binding<unknown>, bindingConstraintsList: SingleImmutableLinkedList<InternalBindingConstraints>, optionalBindings: boolean): PlanServiceNodeBindingRemovedResult;
//# sourceMappingURL=removeServiceNodeBindingIfContextFree.d.ts.map