import React from 'react'; import { Aspect, CheckerType, EntityDict, OpRecord } from 'oak-domain/lib/types'; import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain'; import { BasicFeatures } from './features'; import { NamedFilterItem, NamedSorterItem } from './types/NamedCondition'; import { Feature } from './types/Feature'; import { DataOption, ComponentData, ComponentProps, OakComponentOption, OakNavigateToParameters } from './types/Page'; import { MessageProps } from './types/Message'; import { NotificationProps } from './types/Notification'; import { SyncContext } from 'oak-domain/lib/store/SyncRowStore'; import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore'; export declare function createComponent, FrontCxt extends SyncContext, AD extends Record>>, FD extends Record, FormedData extends Record, TData extends Record = {}, TProperty extends DataOption = {}, TMethod extends Record = {}>(option: OakComponentOption, features: BasicFeatures & FD): { new (props: ComponentProps): { features: BasicFeatures & FD; oakOption: OakComponentOption; oakLifetime: string; isReachBottom: boolean; methodProps: Record; defaultProperties: Record; iAmThePage(): boolean; isMobile(): boolean; supportPullDownRefresh(): boolean; componentDidMount(): Promise; componentWillUnmount(): void; componentDidUpdate(prevProps: Record, prevState: Record): Promise; render(): React.ReactNode; oakFullpath: string; featuresSubscribed: Array<{ name: string; callback: (args?: any) => void; unsubHandler?: () => void; }>; addFeatureSub(name: string, callback: (args?: any) => void): void; removeFeatureSub(name: string, callback: (args?: any) => void): void; unsubscribeAll(): void; subscribeAll(): void; save(key: string, item: any): Promise; load(key: string): Promise; clear(key?: string): Promise; setNotification(data: NotificationProps): void; consumeNotification(): NotificationProps | undefined; setMessage(data: MessageProps): Promise; consumeMessage(): MessageProps | undefined; reRender(extra?: Record): void; navigateTo(options: { url: string; } & OakNavigateToParameters, state?: Record, disableNamespace?: boolean): Promise; navigateBack(delta?: number): Promise; redirectTo(options: { url: string; } & OakNavigateToParameters, state?: Record, disableNamespace?: boolean): Promise; addItem(data: Omit & { id?: string; }, path?: string): string; addItems(data: (Omit & { id?: string; })[], path?: string): string[]; removeItem(id: string, path?: string): void; removeItems(ids: string[], path?: string): void; updateItem(data: ED[T_1]["Update"]["data"], id: string, action?: ED[T_1]["Action"] | undefined, path?: string): void; updateItems(data: ED[T_1]["Update"]["data"], ids: string[], action?: ED[T_1]["Action"] | undefined, path?: string): void; recoverItem(id: string, path?: string): void; recoverItems(ids: string[], path?: string): void; resetItem(id: string, path?: string): void; update(data: ED[T_1]["Update"]["data"], action?: ED[T_1]["Action"] | undefined, path?: string): void; create(data: Omit, path?: string): void; remove(path?: string): void; isCreation(path?: string): boolean; clean(lsn?: number, dontPublish?: true, path?: string): void; savePoint(): number; t(key: string, params?: object): string; execute(action?: ED[T]["Action"] | undefined, messageProps?: boolean | MessageProps, path?: string, opers?: { entity: T; operation: ED[T]["Operation"]; }[] | undefined): Promise; isDirty(path?: string): boolean; getFreshValue(path?: string): Partial | Partial[] | undefined; select(entity: T2, selection: ED[T2]["Selection"]): Partial[]; checkOperation(entity: T2, operation: Omit, checkerTypes?: CheckerType[], cacheInsensative?: true): boolean | { [A in ED[T2]["Action"]]: boolean | import("oak-domain/lib/types").OakUserException; }[ED[T2]["Action"]]; tryExecute(path?: string, action?: string): boolean | { [A in ED[keyof ED]["Action"]]: boolean | import("oak-domain/lib/types").OakUserException; }[ED[keyof ED]["Action"]]; getOperations(path?: string): { entity: keyof ED; operation: ED[keyof ED]["Operation"]; }[] | undefined; refresh(pageNumber?: number, resetTotal?: boolean): Promise; loadMore(): Promise; setId(id: string, path?: string): void; unsetId(): void; getId(path?: string): string | undefined; setFilters(filters: NamedFilterItem[], path?: string): void; setNamedFilters(filters: NamedFilterItem[], refresh?: boolean, path?: string): void; getFilters(path?: string): any[] | undefined; getFilterByName(name: string, path?: string): any; addNamedFilter(namedFilter: NamedFilterItem, refresh?: boolean, path?: string): void; removeNamedFilter(namedFilter: NamedFilterItem, refresh?: boolean, path?: string): void; removeNamedFilterByName(name: string, refresh?: boolean, path?: string): void; setNamedSorters(namedSorters: NamedSorterItem[], refresh?: boolean, path?: string): void; getSorters(path?: string): ED[T]["Sorter"][] | undefined; getSorterByName(name: string, path?: string): any; addNamedSorter(namedSorter: NamedSorterItem, refresh?: boolean, path?: string): void; removeNamedSorter(namedSorter: NamedSorterItem, refresh?: boolean, path?: string): void; removeNamedSorterByName(name: string, refresh?: boolean, path?: string): void; getPagination(path?: string): import(".").Pagination | undefined; setPageSize(pageSize: number, path?: string): void; setCurrentPage(currentPage: number, path?: string): void; subDataEvents(events: string[], callback: (event: string, opRecords: OpRecord[]) => void): Promise<() => void>; context: unknown; setState>(state: ComponentData | ((prevState: Readonly>, props: Readonly>) => ComponentData | Pick, K> | null) | Pick, K> | null, callback?: (() => void) | undefined): void; forceUpdate(callback?: (() => void) | undefined): void; readonly props: Readonly>; state: Readonly>; refs: { [key: string]: React.ReactInstance; }; shouldComponentUpdate?(nextProps: Readonly>, nextState: Readonly>, nextContext: any): boolean; componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void; getSnapshotBeforeUpdate?(prevProps: Readonly>, prevState: Readonly>): any; componentWillMount?(): void; UNSAFE_componentWillMount?(): void; componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void; UNSAFE_componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void; componentWillUpdate?(nextProps: Readonly>, nextState: Readonly>, nextContext: any): void; UNSAFE_componentWillUpdate?(nextProps: Readonly>, nextState: Readonly>, nextContext: any): void; }; contextType?: React.Context | undefined; };