import type { AppCategory } from '@ankhorage/contracts'; import { type IconProps } from '@ankhorage/zora'; import React from 'react'; import { type TextInputProps } from 'react-native'; import type { StudioProjectSummary } from '../../projectWorkspaceContracts'; import type { TemplateCatalogCategory, TemplateEntry } from '../../templateCatalogContracts'; export { styles }; type IoniconsIconName = Extract['name']; export declare function WorkspaceScreen(props: { title: string; subtitle: string; children: React.ReactNode; }): React.JSX.Element; export declare function ThemedWorkspaceTextInput(props: TextInputProps): React.JSX.Element; export declare function ProjectOverviewCard(props: { project: StudioProjectSummary; onPress: () => void; }): React.JSX.Element; export declare function CategoryCard(props: { category: TemplateCatalogCategory; onPress: () => void; }): React.JSX.Element; export declare function TemplateCard(props: { template: { name: string; description: string; }; onPress: () => void; }): React.JSX.Element; export declare function SearchResults(props: { query: string; results: TemplateEntry[]; onClear: () => void; onPress: (template: TemplateEntry) => void; }): React.JSX.Element; export declare function LifecycleAction(props: { iconName: IoniconsIconName; label: string; detail: string; loading: boolean; disabled: boolean; destructive?: boolean; onPress: () => void; }): React.JSX.Element; export declare function PrimaryAction(props: { iconName: IoniconsIconName; label: string; disabled?: boolean; onPress: () => void; }): React.JSX.Element; export declare function SecondaryAction(props: { label: string; onPress: () => void; }): React.JSX.Element; export declare function SegmentedControl(props: { value: TValue; options: readonly { label: string; value: TValue; }[]; onChange: (value: TValue) => void; }): React.JSX.Element; export declare function MetadataRows(props: { rows: readonly (readonly [string, string])[]; }): React.JSX.Element; export declare function InlineMessage(props: { tone: 'success' | 'error' | 'info'; text: string; }): React.JSX.Element; export declare function LoadingState(props: { label: string; }): React.JSX.Element; export declare function EmptyState(props: { title: string; detail: string; actionLabel?: string; onAction?: () => void; }): React.JSX.Element; export declare function formatCategory(category: AppCategory): string; export declare function formatDate(value: string | undefined): string; declare const styles: { safeArea: { flex: number; }; scroll: { flex: number; }; screenContent: { width: "100%"; maxWidth: number; alignSelf: "center"; padding: number; paddingBottom: number; gap: number; }; screenHeader: { gap: number; }; toolbar: { flexDirection: "row"; flexWrap: "wrap"; alignItems: "center"; gap: number; }; searchInput: { minWidth: number; minHeight: number; flexGrow: number; borderWidth: number; borderRadius: number; paddingHorizontal: number; paddingVertical: number; }; segmented: { flexDirection: "row"; borderWidth: number; borderRadius: number; overflow: "hidden"; }; segment: { minHeight: number; paddingHorizontal: number; alignItems: "center"; justifyContent: "center"; }; primaryAction: { minHeight: number; borderWidth: number; borderRadius: number; paddingHorizontal: number; flexDirection: "row"; alignItems: "center"; justifyContent: "center"; gap: number; }; secondaryAction: { minHeight: number; borderWidth: number; borderRadius: number; paddingHorizontal: number; alignItems: "center"; justifyContent: "center"; }; projectGrid: { flexDirection: "row"; flexWrap: "wrap"; gap: number; }; projectCard: { width: number; minHeight: number; borderWidth: number; borderRadius: number; overflow: "hidden"; }; themeStripe: { height: number; width: "100%"; }; cardBody: { padding: number; gap: number; }; categoryGrid: { flexDirection: "row"; flexWrap: "wrap"; gap: number; }; categoryCard: { width: number; minHeight: number; borderWidth: number; borderRadius: number; padding: number; gap: number; }; categoryAccent: { width: number; height: number; borderRadius: number; }; templateGrid: { flexDirection: "row"; flexWrap: "wrap"; gap: number; }; templateCard: { width: number; minHeight: number; borderWidth: number; borderRadius: number; padding: number; gap: number; }; detailLayout: { flexDirection: "row"; flexWrap: "wrap"; gap: number; alignItems: "flex-start"; }; createLayout: { flexDirection: "row"; flexWrap: "wrap"; gap: number; alignItems: "flex-start"; }; detailPanel: { minWidth: number; flex: number; gap: number; }; lifecyclePanel: { minWidth: number; flex: number; gap: number; }; actionStack: { gap: number; }; lifecycleAction: { minHeight: number; borderWidth: number; borderRadius: number; padding: number; flexDirection: "row"; alignItems: "center"; gap: number; }; lifecycleCopy: { flex: number; gap: number; }; metadata: { gap: number; }; metadataRow: { gap: number; }; inlineMessage: { borderWidth: number; borderRadius: number; padding: number; }; emptyState: { minHeight: number; borderWidth: number; borderStyle: "dashed"; borderRadius: number; alignItems: "center"; justifyContent: "center"; padding: number; gap: number; }; fieldGroup: { gap: number; }; resultsHeader: { flexDirection: "row"; alignItems: "center"; justifyContent: "space-between"; gap: number; flexWrap: "wrap"; }; }; //# sourceMappingURL=WorkspacePrimitives.d.ts.map