import * as React from 'react'; import { providers, client } from '@logilab/cwclientlibjs'; export declare type RelationOrAttribute = providers.EntityRelationSchema | providers.EntityAttributeSchema; export interface SchemaNavigatorProps { schemaProvider: providers.RqlEntitySchemasLoader; handleError: (error: string) => void; showMetamodel: boolean; clientRql: client.CwRqlClient; entityTypeTextSearch: string; setEntityTypeTextSearch: (text: string) => void; relationsAndAttributesTextSearch: string; setRelationsAndAttributesTextSearch: (text: string) => void; linkedEntityTypeTextSearch: string; setLinkedEntityTypeTextSearch: (text: string) => void; } export declare function useSchemaNavigator({ schemaProvider, handleError, showMetamodel, clientRql, entityTypeTextSearch, setEntityTypeTextSearch, relationsAndAttributesTextSearch, setRelationsAndAttributesTextSearch, linkedEntityTypeTextSearch, setLinkedEntityTypeTextSearch, }: SchemaNavigatorProps): { schemaLoaded: boolean; filteredEntityTypes: providers.EntitySchema[]; relations: { from: providers.EntityRelationSchema[]; to: providers.EntityRelationSchema[]; }; attributes: providers.EntityAttributeSchema[]; filteredLinkedEntityTypes: providers.EntitySchema[]; selectedAttributeValues: any[] | null; selectedEntityTypeName: string | null; selectedRelationName: string | null; selectedAttributeName: string | null; selectedLinkedEntityTypeName: string | null; tempSelectedEntityTypeName: string | null; setTempEntityTypeName: React.Dispatch>; deselectTempEntityType: () => void; tempSelectedRelationOrAttributeName: string | null; setTempSelectedRelationOrAttribute: React.Dispatch>; deselectTempRelationOrAttribute: () => void; };