import type { CTAHistory, } from './CTAHistory'; import type { UseCTAReturnTypeDispatch, } from './UseCTAReturnTypeDispatch'; import type { CTAState, } from './CTAState'; import type { UseCTAParameterCreateFuncReturnRecord, } from './UseCTAParameterCreateFunc'; import type { UseCTAReturnType, } from './UseCTAReturnType'; export type CTASelector< Initial extends CTAState, Actions, FR extends UseCTAParameterCreateFuncReturnRecord, R = unknown, > = ( props: { dispatch: UseCTAReturnTypeDispatch } & CTAHistory ) => R; export type UseCTASelector< Initial extends CTAState, Actions, FR extends UseCTAParameterCreateFuncReturnRecord, > = ( = CTASelector< Initial, Actions, FR, UseCTAReturnType>, >( selector?: Selector ) => ReturnType ) & { dispatch: UseCTAReturnTypeDispatch getHistory: () => CTAHistory };