import * as React from "react";
import { IGXE } from "@intelligentgraphics/igd.productdata";
import { WithSessionContext } from "./SessionContext";
declare const DecoratedSubscription: (props: Pick<PropertySubscriptionProps, "children" | "comId" | "propertyKey" | "createValues"> & {
    children?: React.ReactNode;
} & Partial<WithSessionContext<import("@intelligentgraphics/igd.productdata").Session<import("@intelligentgraphics/igd.productdata").ApplicationStateValue, import("@intelligentgraphics/igd.productdata").NotificationPayloads<import("@intelligentgraphics/igd.productdata").ApplicationStateValue>>>>) => React.ReactElement<PropertySubscriptionProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>;
export default DecoratedSubscription;
export interface PropertySubscriptionData extends IGXE.IProperty {
    setPropValue(newValue: IGXE.TPropertyValue): Promise<void>;
}
export interface PropertySubscriptionProps extends WithSessionContext {
    comId: string;
    propertyKey: string;
    children: React.FunctionComponent<PropertySubscriptionData>;
    createValues?(property: IGXE.IProperty): IGXE.IPropertyValue[];
}
export interface WithPropertySubscriptionChildProps {
    property: IGXE.IProperty;
    setPropValue?(newValue: IGXE.TPropertyValue): Promise<void>;
}
export declare const withPropertySubscription: <ComponentProps extends WithPropertySubscriptionChildProps>(Component: React.ComponentType<ComponentProps>) => <SupplyProps extends Pick<ComponentProps, ({ [P in Extract<keyof ComponentProps, string>]: P; } & {
    setPropValue: never;
    property: never;
} & {
    [x: string]: never;
})[Extract<keyof ComponentProps, string>]>>({ comId, propertyKey, createValues, ...childProps }: SupplyProps & Pick<PropertySubscriptionProps, "session" | "basket" | "comId" | "propertyKey" | "createValues">) => JSX.Element;
