import { AnyAction } from './create-action';
import { ActionCreator } from './create-action-creator';
import { ExtractAction } from './types';
/**
 * Non-curried function
 * @example
 * const increment = createActionCreator('[Counter] increment')
 * const decrement = createActionCreator('[Counter] decrement')
 * isOfType('[Counter] increment', increment()) //=> true
 * @example
 * isOfType(['[Counter] increment', '[Counter] decrement'], increment()) //=> true
 * @example
 * isOfType(decrement(), increment()) //=> false
 */
export declare function isOfType<TSource extends AnyAction, TKey extends string | AnyAction | ActionCreator<AnyAction>, TSink extends TSource = ExtractAction<TSource, TKey>>(keys: TKey | ReadonlyArray<TKey>, action: TSource): action is TSink;
/**
 * Curried function
 * @example
 * const increment = createActionCreator('[Counter] increment')
 * const decrement = createActionCreator('[Counter] decrement')
 * isOfType('[Counter] increment')(increment()) //=> true
 * @example
 * isOfType(['[Counter] increment', '[Counter] decrement'])(increment()) //=> true
 * @example
 * isOfType(decrement())(increment()) //=> false
 */
export declare function isOfType<TKey extends string | AnyAction | ActionCreator<AnyAction>>(keys: TKey | ReadonlyArray<TKey>): <TSource extends AnyAction, TSink extends TSource = ExtractAction<TSource, TKey>>(action: TSource) => action is TSink;
