import { Ref } from 'vue';
import { Reactive } from '../common/common';
export declare function bindProp<T extends object, K extends keyof T>(props: T, name: K, emit: (event: `update:${K & string}`, ...args: any[]) => void, filter?: (arg: T[K]) => T[K]): Ref<T[K]>;
type KeysOfType<Obj, Val> = {
    [K in keyof Obj]-?: Obj[K] extends Val ? K : never;
}[keyof Obj];
export declare function bindPropKeySet<T extends object, K extends string & KeysOfType<T, string[]>>(props: T, name: K, sourceObject: Ref<{
    [name: string]: any;
}>, emit: (event: `update:${K & string}`, ...args: any[]) => void): Reactive<Set<string>>;
export {};
