import { PickFunction, PickCSSProperties, ObjectValue } from '../type';

type PickFunctionObject<T extends Record<string, any>> = Pick<T, ObjectValue<PickFunction<T>>>;
type OmitFunctionAndCSSObject<T extends Record<string, any>> = Omit<T, ObjectValue<PickFunction<T> | PickCSSProperties<T>>>;
interface KeyValueOrAll<T extends Record<string, any>> {
    <K extends keyof T>(key: K, value: T[K]): void;
    (record: T): void;
}
export interface ElementContext<E extends Record<string, any>, P extends Record<string, any>> {
    id: string;
    exportAttr: KeyValueOrAll<OmitFunctionAndCSSObject<E>>;
    exportEvent: KeyValueOrAll<PickFunctionObject<E>>;
    updateProps: KeyValueOrAll<OmitFunctionAndCSSObject<P>>;
}
export declare const elementContext: import('react').Context<ElementContext<any, any>>;
export {};
