import * as React from "react"; import { Observable } from "rxjs"; import { Entity as StatefulEntity } from "@daostack/arc.js"; import { Component } from "./Component"; import { ComponentListLogs } from "./logging/ComponentListLogs"; import { MaybeAsync } from "./utils/async"; export { ComponentListLogs }; export declare type CProps = Comp extends Component ? Props : undefined; export declare type CEntity = Comp extends Component ? Entity : undefined; export declare type CData = Comp extends Component ? Data : undefined; declare type PFilterOptions = Props extends ComponentListProps ? FilterOptions : undefined; export interface ComponentListProps { filter?: FilterOptions; sort?: (entities: Entity[]) => MaybeAsync; } interface State { entities: Entity[]; sorted: Entity[]; logs: ComponentListLogs; } export declare abstract class ComponentList>, Comp extends Component, CEntity, CData>, Entity extends StatefulEntity> = CEntity> extends React.Component> { protected abstract createObservableEntities(): Observable; protected abstract renderComponent(entity: Entity, children: any, index: number): React.ComponentElement, any>; protected static EntitiesContext: React.Context; protected static LogsContext: React.Context; private observableEntities; private _subscription?; "constructor": typeof ComponentList; constructor(props: Props); render(): JSX.Element; UNSAFE_componentWillMount(): Promise; componentWillUnmount(): void; private createObservableEntitiesWithProps; private clearPrevState; private onQueryEntities; private onQueryError; private onQueryComplete; } export declare function createFilterFromScope(filter: any, scope: Scopes | undefined, scopeProps: Record, props: any): any;