import { PropertyBinding, PropertyBindingId, PropertyBindingProviderId } from "../PropertyBinding";
import { PropertyConfiguration, PropertyDefinition, PropertyValue } from "..";
export interface IPropertyBindingProvider {
    id: PropertyBindingProviderId;
    getBindingById(bindingId: PropertyBindingId): Promise<PropertyBinding<PropertyDefinition<any, any, any>>>;
    getBindings(): Promise<Array<PropertyBinding<PropertyDefinition<PropertyValue, any, any>>>>;
    getConfiguration<TPropertyDefintion extends PropertyDefinition<any, any, any>>(binding: PropertyBinding<TPropertyDefintion>): Promise<PropertyConfiguration<TPropertyDefintion>>;
}
export interface ProviderBinding {
    provider: IPropertyBindingProvider;
    binding: PropertyBinding<PropertyDefinition<PropertyValue, any, any>>;
}
