import { TeamMemberInfo } from "../../api-helpers/types";
import { SubInstanceSelection } from "../../core/helpers/dom-data-id-helpers";
import { ComponentDefinitionInfo, ComponentDefinitionInfosMap } from "../../data/helper-types";
import { SubframeTheme } from "../../data/theme-types";
import { AlignmentData, BackgroundData, BorderData, BorderToken, BorderTokenAlias, Collection, ColorToken, ColorTokenAlias, ColorValueOrAlias, ComponentDefinition, ComponentDefinitionMap, ComponentDisplayOptions, ContainerType, CornerData, CornerToken, CornerTokenAlias, CustomComponentInstance, CustomPageComponentDefinition, DeviceType, FontToken, FontTokenAlias, FontValueOrAlias, GridPosition, IconPropDefinition, ImagePropDefinition, InstanceProps, InteractionType, LayoutData, NodeId, NodeType, NumberPropDefinition, OverflowType, OverrideDataKey, PaddingData, PaddingType, PageComponentDefinition, PageLayout, PageLayoutComponentDefinition, PageSuggestion, PopoverPlacement, Project, PropDefinition, Selector, SelectorData, SelectorsMap, ShadowData, ShadowToken, ShadowTokenAlias, SizeData, SlotData, SlotInstancePrimitive, SlotPropDefinition, TextAlignmentType, TextPropDefinition, TextStyleType, TextWhitespaceType, ThemeStyleType } from "../../data/types";
import { ComponentDefinitions } from "../reducers/current-release/components";
import { DropIndex } from "../reducers/editor/drag-and-drop";
import { HoverState } from "../reducers/editor/hover";
import { SelectionState } from "../reducers/editor/selection";
import { TreeExpansionValue } from "../reducers/editor/tree-expansion";
import { RootState } from "../reducers/root";
/**
 * Assets
 */
export declare function useAssetLogo(): import("../../data/types").ImageAsset;
export declare function useImageLibraryAssets(): import("../../data/types").ImageAsset[];
export declare function useAllImageAssets(): import("../../data/types").ImageAsset[];
/**
 * Themes
 */
export declare function useSubframeTheme(): SubframeTheme;
export declare function useSelectedThemeStyle(): ThemeStyleType;
/**
 * Tokens
 */
export declare function usePrimaryColorToken(): import("../../data/types").ColorTokenWithValue;
export declare function useSecondaryColorToken(): ColorToken;
export declare function useErrorColorToken(): ColorToken;
export declare function useWarningColorToken(): ColorToken;
export declare function useSuccessColorToken(): ColorToken;
export declare function useColorToken(tokenId: string): import("../../data/types").ColorTokenWithValue | import("../../data/types").ColorTokenWithAlias;
export declare function useColorTokenValue(tokenId: string, darkMode?: boolean): import("../../data/types").ColorValue;
export declare function useColorPalettes(): import("../../data/types").ColorPalette[];
export declare function useColorPalette(paletteId: string): import("../../data/types").ColorPalette;
export declare function useAllColorTokens(): ColorToken[];
export declare function useNonPaletteColorTokens(): ColorToken[];
export declare function usePrimaryFontFamilyToken(): import("../../data/types").FontAsset;
/**
 * Token Values
 */
export declare function useResolvedTokenFontValue(tokenValue: FontToken["value"]): import("../../data/types").FontValue;
export declare function useResolvedTokenColorValue(tokenValue: ColorToken["value"], darkMode?: boolean): import("../../data/types").ColorValue;
export declare function useResolvedTokenBorderValue(tokenValue: BorderToken["value"]): import("../../data/types").BorderValue;
export declare function useResolvedTokenCornerValue(tokenValue: CornerToken["value"]): import("../../data/types").CornerValue;
export declare function useResolvedTokenShadowValue(tokenValue: ShadowToken["value"]): import("../../data/types").ShadowValue;
/**
 * Token Aliases
 */
export declare function useTokenFromColorTokenAlias(instance: ColorTokenAlias): ColorToken;
export declare function useTokenFromFontTokenAlias(instance: FontTokenAlias): FontToken;
export declare function useTokenFromBorderTokenAlias(instance: BorderTokenAlias): BorderToken;
export declare function useTokenFromCornerTokenAlias(instance: CornerTokenAlias): CornerToken;
export declare function useTokenFromShadowTokenAlias(instance: ShadowTokenAlias): ShadowToken;
/**
 * Helpers
 */
export declare const selectComponentDefinition: (state: RootState, componentId: string) => ComponentDefinition;
/**
 * Selection and current instances
 */
export declare function useReleaseIdForDocumentation(): string | null;
export declare function useCurrentComponentId(): string;
export declare function useMaybeCurrentComponentId(): string | null;
export declare function useCurrentComponent(): ComponentDefinition;
export declare function useCurrentComponentRootId(): string | undefined;
export declare function useCanCurrentComponentAddPropDefinitions(): boolean;
export declare function useIsCurrentComponentPage(): boolean;
export declare const selectAllSelectedSubInstances: (state: RootState) => SubInstanceSelection[] | null;
export declare function useAllSelectedSubInstances(): SubInstanceSelection[] | null;
export declare function useAllHoveredSubInstances(): SubInstanceSelection[] | null;
export declare function useSelectedSubInstance(): SubInstanceSelection | null;
export declare function useSelectedInstanceDefinitionId(): string;
export declare function useSelectedInstanceDefinitionType(): ComponentDefinition["type"];
export declare function useSelectedInstanceDefinition(): ComponentDefinition;
export declare function useIsRootComponentSelected(): boolean;
export declare function useSelectedId(): NodeId | null;
export declare function useSelectedIds(): NodeId[] | null;
export declare function useSelectionState(): SelectionState | null;
export declare function useSelectedInteractionType(): InteractionType;
export declare const selectSelectedSelectorData: (state: RootState) => SelectorData | undefined;
export declare function useSelectedSelectorData(): SelectorData | undefined;
export declare const selectSelectedInstanceProps: (state: RootState, componentId: string) => InstanceProps | null;
export declare function useIsSelectorSelected(selectorId: string): boolean;
export declare function useSelectedPropDefinitionId(componentId: string): string | undefined;
export declare function useHoverState(): HoverState | null;
export declare function useIsHovered(nodeId: NodeId, subInstances: SubInstanceSelection[]): boolean;
export declare function useIsSelected(nodeId: NodeId, subInstances: SubInstanceSelection[]): boolean;
export declare function useIsNodeDescendentSelected(nodeId: NodeId, subInstances: SubInstanceSelection[]): boolean;
export declare function useIsComponentDescendentSelected(subInstances: SubInstanceSelection[]): boolean;
export declare function useSelectorsForCurrentDeviceType(component: ComponentDefinition): SelectorsMap;
export declare function useCurrentDeviceOverridesForNode({ definition, nodeId, }: {
    definition: ComponentDefinition;
    nodeId: NodeId;
}): OverrideDataKey[];
export declare function useSelectedSelector(componentId: string): Selector | null;
export declare function useComponentDefaultSelector(componentId: string): Selector;
export declare const selectDefaultSelectorData: (state: RootState, componentId: string) => SelectorData;
export declare function useComponentDefaultSelectorData(componentId: string): SelectorData;
export declare function useCollections(): Collection[];
export declare function useAllCollectionComponentIds(): string[];
export declare function useCollectionComponentIds(collectionId: string): string[];
export declare function useSidebarCollectionComponentIds(): string[];
export declare function useNavbarCollectionComponentIds(): string[];
/**
 * All Components
 */
export declare function useComponentDefinitionIds(): string[];
export declare const useComponentDefinitionsInfoMap: () => ComponentDefinitionInfosMap;
export declare const useCanAddCompoundComponents: (componentId: string) => boolean;
export declare const useParentComponentId: (componentId: string) => string;
export declare const useParentComponent: (componentId: string) => ComponentDefinition;
export declare function useNonDesignSystemComponentIds(): string[];
export declare function useNonDesignSystemComponents(): ComponentDefinition[];
export declare function useEditableComponents(): ComponentDefinition[];
export declare function useCompoundComponentDefinitionIds(componentId: string, includeParent?: boolean): string[];
export declare function useInsertableComponentDefinitionInfos(componentId: string, includeNode: boolean, nodeId?: NodeId): ComponentDefinitionInfo[];
export declare function useAllCompoundComponents(): ComponentDefinition[];
export declare function useBuiltInNonDesignSystemComponents(): ComponentDefinition[];
export declare function useBuiltInNonDesignSystemComponentIds(): string[];
export declare function useDesignSystemComponentIds(): string[];
export declare function useDesignSystemComponents(): ComponentDefinition[];
export declare function useManagedBySubframeComponentIds(): string[];
export declare function useManagedBySubframeComponents(): ComponentDefinition[];
export declare function useNonManagedBySubframeComponents(): ComponentDefinition[];
export declare function usePageComponents(): CustomPageComponentDefinition[];
export declare function useBuiltInPageComponents(): PageComponentDefinition[];
export declare function useNonBuiltInPageCompnents(): PageComponentDefinition[];
export declare function useComponentDefinition(id: string): ComponentDefinition;
export declare function useDoesComponentDefinitionExist(id: string): boolean;
export declare function useCachedComponentDefinitions(): ComponentDefinitions;
/**
 * Page Layouts
 */
export declare function usePageLayoutComponent(layout: PageLayout): PageLayoutComponentDefinition;
export declare function usePageLayout(componentId: string): PageLayout | null;
/**
 * Component-specific
 */
export declare const selectPropDefinitions: (state: RootState, componentId: string) => PropDefinition[];
export declare function usePropDefinitions(componentId: string): PropDefinition[];
export declare function useTextPropDefinitions(componentId: string): TextPropDefinition[];
export declare function useNumberPropDefinitions(componentId: string): NumberPropDefinition[];
export declare function useIconPropDefinitions(componentId: string): IconPropDefinition[];
export declare function useImagePropDefinitions(componentId: string): ImagePropDefinition[];
export declare function useComponentName(componentId: string): string;
export declare function useComponentType(componentId: string): ComponentDefinition["type"];
export declare function useCompoundComponents(componentId: string, includeParent?: boolean): ComponentDefinition[];
export declare function useComponentDisplayOptions(componentId: string): ComponentDisplayOptions;
export declare function useRootNodeId(componentId: string): NodeId | undefined;
/**
 * Slot-specific
 */
export declare function selectSlotPropDefinition(componentDefinitions: ComponentDefinitionMap, componentId: string, nodeId: NodeId): SlotPropDefinition;
export declare function useSlotInstanceNode(componentId: string, nodeId: string, slotPropDefinitionId: string): SlotInstancePrimitive | null;
/**
 * Drag and drop
 */
export declare function useDropIndexForNode(nodeId: NodeId): DropIndex | null;
export declare function useDropIndexInsertNodeId(): NodeId | undefined;
export declare function useIsDragging(): boolean;
/**
 * Node stuff
 */
export declare function selectNode(state: RootState, componentId: string, nodeId: NodeId): NodeType;
export declare function selectAllNodesInOrder(state: RootState, componentId: string): NodeType[];
export declare function useNodeSelectorWithOverrides<S extends NodeType, T>(componentId: string, nodeId: NodeId, selector: (node: S) => T): T;
export declare const selectNodeChildrenIds: (state: RootState, componentId: string, nodeId: NodeId) => string[];
export declare function useNodeChildrenIds(componentId: string, nodeId: NodeId): string[];
export declare function useNodeLayout(componentId: string, nodeId: NodeId): LayoutData;
export declare function useNodeAlignment(componentId: string, nodeId: NodeId): AlignmentData;
export declare function getCustomInstanceSize(instance: CustomComponentInstance, componentDefinitions: ComponentDefinitionMap, deviceType: DeviceType): SizeData;
export declare function getCustomInstanceRootNodeSize(instance: CustomComponentInstance, componentDefinitions: ComponentDefinitionMap, deviceType: DeviceType): SizeData;
export declare function selectNodeSize(state: RootState, componentId: string, nodeId: NodeId): SizeData | null;
export declare function useNodeSize(componentId: string, nodeId: NodeId): SizeData;
export declare function useIsNodeOverridingDefaultSize(componentId: string, nodeId: NodeId): boolean;
export declare function useNodeClassName(componentId: string, nodeId: NodeId): string | undefined;
export declare function useNodeContainerType(componentId: string, nodeId: NodeId): ContainerType | null;
export declare function useNodeTextWhitespace(componentId: string, nodeId: NodeId): TextWhitespaceType;
export declare function useNodeTextStyle(componentId: string, nodeId: NodeId): TextStyleType;
export declare function useOverwrittenNodeDataKeys(componentId: string, nodeId: NodeId, overrideDataKeys: OverrideDataKey[]): OverrideDataKey[];
export declare function useNodeBackground(componentId: string, nodeId: NodeId): BackgroundData | null;
export declare function useNodeBorder(componentId: string, nodeId: NodeId): BorderData | null;
export declare function useNodeCorner(componentId: string, nodeId: NodeId): CornerData | null;
export declare function useNodeShadow(componentId: string, nodeId: NodeId): ShadowData | null;
export declare function useNodeSlotData(componentId: string, nodeId: NodeId): SlotData | null;
export declare function useNodePadding(componentId: string, nodeId: NodeId): PaddingData;
export declare function useNodeTextAlignment(componentId: string, nodeId: NodeId): TextAlignmentType;
export declare function useNodeIsVisible(componentId: string, nodeId: NodeId): boolean;
export declare function useNodeOverflowType(componentId: string, nodeId: NodeId): OverflowType;
export declare function useNodePaddingType(componentId: string, nodeId: NodeId): PaddingType | null;
export declare function useNodeType(componentId: string, nodeId: NodeId): NodeType["type"];
export declare function useParentNodeDirection(componentId: string, nodeId: NodeId): LayoutData["direction"];
export declare function useNodeFontColor(componentId: string, nodeId: NodeId): ColorValueOrAlias;
export declare function useNodeFontStyle(componentId: string, nodeId: NodeId): FontValueOrAlias;
export declare function useNodeIconColor(componentId: string, nodeId: NodeId): ColorValueOrAlias;
export declare function useNodeName(componentId: string, nodeId: NodeId): string;
export declare function useNodeComponentId(componentId: string, nodeId: NodeId): string;
export declare function useInstanceNodeComponentType(componentId: string, nodeId?: NodeId): ComponentDefinition["type"] | undefined;
export declare function useNodeInstanceProps(componentId: string, nodeId: NodeId): InstanceProps;
export declare function useAnchorNodeId(componentId: string, nodeId: NodeId): NodeId;
export declare function useNodeHasPopover(componentId: string, nodeId: NodeId): boolean;
export declare function useNodePopoverPlacement(componentId: string, nodeId: NodeId): PopoverPlacement;
export declare function useNodeCollection(componentId: string, nodeId: NodeId): Collection | undefined;
export declare function useTreeNodeExpanded(nodeId: NodeId): TreeExpansionValue;
export declare function useNodeGridPosition(componentId: string, nodeId: NodeId): GridPosition;
/**
 * Templates
 */
export declare function useIsComponentAddedToLibrary(componentId: string): boolean;
export declare function useOnlyComponentsAddedToLibrary(definitionIds: string[]): string[];
/**
 * Node selectors, but not related to data
 */
export declare function useNodeCanBeWrapped(componentId: string, nodeId: NodeId): boolean;
export declare function useComponentsUsed(definition: ComponentDefinition): ComponentDefinition[];
/**
 * User Profile
 */
export declare function useHasUserOnboarded(): boolean | null;
/**
 * Team
 */
export declare function useTeamMembers(): TeamMemberInfo[];
export declare function useActiveTeamMembers(): TeamMemberInfo[];
export declare function useTeamSupportsAI(): boolean | null;
/**
 * Projects
 */
export declare function useProject(): Project | null;
export declare function useProjectId(): string | null;
export declare function useProjectCommitVersion(): number | null;
export declare function useProjectPreferences(): Project["preferences"] | null;
export declare function useSubframeImportAlias(): string;
export declare function useAIContext(): {
    name: string | null;
    context: string | null;
    suggestions: PageSuggestion[] | null;
};
/**
 * Others
 */
export declare function isNodeUsingComponent(node: NodeType, componentId: string): node is CustomComponentInstance;
export declare function getComponentUsages(componentId: string, componentDefinitions: ComponentDefinitionMap): ComponentDefinition[];
export declare function useComponentUsages(componentId: string): ComponentDefinition[];
export declare function useIsComponentReadOnlyForNonOverrides({ componentId }: {
    componentId: string;
}): boolean;
//# sourceMappingURL=selectors.d.ts.map