import { Event, StateValue, ActionType, Action, EventObject, StateInterface, PropertyMapper, Mapper, EventType, HistoryValue, OmniEventObject, AssignAction, ActionObject, Condition, Guard, Subscribable, StateMachine, ConditionPredicate } from './types'; export declare function keys(value: T): Array; export declare function matchesState(parentStateId: StateValue, childStateId: StateValue, delimiter?: string): boolean; export declare function getEventType(event: Event): TEvent['type']; export declare function getActionType(action: Action): ActionType; export declare function toStatePath(stateId: string | string[], delimiter: string): string[]; export declare function toStateValue(stateValue: StateInterface | StateValue | string[], delimiter: string): StateValue; export declare function pathToStateValue(statePath: string[]): StateValue; export declare function mapValues(collection: { [key: string]: T; }, iteratee: (item: T, key: string, collection: { [key: string]: T; }, i: number) => P): { [key: string]: P; }; export declare function mapFilterValues(collection: { [key: string]: T; }, iteratee: (item: T, key: string, collection: { [key: string]: T; }) => P, predicate: (item: T) => boolean): { [key: string]: P; }; /** * Retrieves a value at the given path. * @param props The deep path to the prop of the desired value */ export declare const path: >(props: string[]) => any; /** * Retrieves a value at the given path via the nested accessor prop. * @param props The deep path to the prop of the desired value */ export declare function nestedPath>(props: string[], accessorProp: keyof T): (object: T) => T; export declare function toStatePaths(stateValue: StateValue | undefined): string[][]; export declare const pathsToStateValue: (paths: string[][]) => StateValue; export declare function flatten(array: Array): T[]; export declare function toArray(value: T[] | T | undefined): T[]; export declare function mapContext(mapper: Mapper | PropertyMapper, context: TContext, event: TEvent): any; export declare function isBuiltInEvent(eventType: EventType): boolean; export declare function isPromiseLike(value: any): value is PromiseLike; export declare function partition(items: T[], predicate: (item: T) => item is A): [A[], B[]]; export declare function updateHistoryStates(hist: HistoryValue, stateValue: StateValue): Record; export declare function updateHistoryValue(hist: HistoryValue, stateValue: StateValue): HistoryValue; export declare function updateContext(context: TContext, event: OmniEventObject, assignActions: Array>): TContext; export declare function bindActionToState(action: ActionObject, state: StateInterface): ActionObject; declare let warn: (condition: boolean | Error, message: string) => void; export { warn }; export declare function isArray(value: any): value is any[]; export declare function isFunction(value: any): value is Function; export declare function isString(value: any): value is string; export declare function toGuard(condition?: Condition, guardMap?: Record>): Guard | undefined; export declare function isObservable(value: Subscribable | any): value is Subscribable; export declare function isMachine(value: any): value is StateMachine; export declare const uniqueId: () => string;