import { Binding } from '../../binding/models/Binding';
import { InternalBindingConstraints } from '../../binding/models/BindingConstraintsImplementation';
import { SingleImmutableLinkedList } from '../../common/models/SingleImmutableLinkedList';
import { PlanServiceNodeBindingRemovedResult } from '../../metadata/models/PlanServiceNodeBindingRemovedResult';
import { PlanServiceNode } from '../models/PlanServiceNode';
/**
 * 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