import { HackyCSSFlags } from "../../core/helpers/types";
import { ComponentDefinitions } from "../../redux/reducers/current-release/components";
import { ChartNode, ComponentDefinition, CustomComponentInstance, IconPrimitive, ImagePrimitive, InputPrimitive, LayoutData, LoaderPrimitive, NodeType, Override, SizeDataWithParentDirection, StackPrimitive, TableBodyNode, TableHeadNode, TableNode, TableRowNode, TextareaPrimitive, TextPrimitive } from "../types";
import { SubframeStyling } from "./types";
export declare function getOrderedKeysForSubframeStyling(styling: SubframeStyling): Array<keyof SubframeStyling>;
export declare function getSubframeStylingForIsVisibleData(data: boolean, nodeType: NodeType["type"]): SubframeStyling;
/**
 * CSS for overrides
 */
export declare function getSubframeStylingForOverride(node: NodeType, override: Override, isDisabled: boolean, isRoot: boolean, parentDir?: LayoutData["direction"]): SubframeStyling;
/**
 * Non-node related CSS
 */
export declare function getSubframeStylingForDisabledNode(): SubframeStyling;
export declare function getSubframeStylingForInteractiveDefinition(): SubframeStyling;
export declare function getSubframeStylingForTextNode(node: TextPrimitive, sizeDataWithDirection: SizeDataWithParentDirection): SubframeStyling;
export declare function getSubframeStylingForStackNode(node: StackPrimitive, sizeDataWithDirection: SizeDataWithParentDirection): SubframeStyling;
export declare function getSubframeStylingForIconNode(node: IconPrimitive): SubframeStyling;
export declare function getSubframeStylingForChartNode(node: ChartNode, sizeDataWithDirection: SizeDataWithParentDirection): SubframeStyling;
export declare function getSubframeStylingForLoaderNode(node: LoaderPrimitive): SubframeStyling;
export declare function getSubframeStylingForTableNode(node: TableNode, sizeDataWithDirection: SizeDataWithParentDirection): SubframeStyling;
export declare function getSubframeStylingForTableHeadNode(node: TableHeadNode): SubframeStyling;
export declare function getSubframeStylingForTableBodyNode(node: TableBodyNode): SubframeStyling;
export declare function getSubframeStylingForTableRowNode(node: TableRowNode): SubframeStyling;
export declare function getSubframeStylingForInputNode(node: InputPrimitive, sizeDataWithDirection: SizeDataWithParentDirection): SubframeStyling;
export declare function getSubframeStylingForTextareaNode(node: TextareaPrimitive, sizeDataWithDirection: SizeDataWithParentDirection): SubframeStyling;
export declare function getSubframeStylingForImageNode(node: ImagePrimitive, sizeDataWithDirection: SizeDataWithParentDirection): SubframeStyling;
export declare function getSubframeStylingForComponentInstanceNode(node: CustomComponentInstance, sizeDataWithDirection: SizeDataWithParentDirection | null): SubframeStyling;
/**
 * Additional helpers for adding node styling
 */
export declare function getSubframeStylingForNode(node: NodeType, definition: ComponentDefinition, isRoot: boolean, componentDefinitions: ComponentDefinitions): SubframeStyling;
export declare function getAdditionalSubframeStylingForNode(node: NodeType, definition: ComponentDefinition): SubframeStyling;
/**
 * Helpers for simplifying Subframe styles
 */
export declare function cleanupNodeSubframeStylingForCodeExportOrRendering(node: NodeType, styling: SubframeStyling, { isRoot, isButton, isRadioGroupItem, isInput }: HackyCSSFlags): SubframeStyling;
//# sourceMappingURL=subframe-styling-helpers.d.ts.map