import { Filter , RelatedTag } from '@empathyco/x-types' ; import { XActionContext , XStoreModule } from '../../../store' ; import { UrlParams } from '../../../types/url-params' ; import { Dictionary } from '../../../utils/types' ; public export type UrlState = UrlParams & { initialExtraParams : Dictionary < unknown > ; } ; public export interface UrlGetters { /** The current params in the url. */ urlParams : UrlParams ; } public export type UrlParamKey = Extract < keyof UrlParams , string > ; public export type UrlParamValue = string | number | boolean | Array < string | number | boolean > ; public export interface UrlMutations { param params setParams ( params ) : void ; param query setQuery ( query ) : void ; param relatedTags setRelatedTags ( relatedTags ) : void ; param filters setFilters ( filters ) : void ; param page setPage ( page ) : void ; param scroll setScroll ( scroll ) : void ; param sort setSort ( sort ) : void ; param extraParams setInitialExtraParams ( extraParams ) : void ; } public export interface UrlActions { } public export type UrlXStoreModule = XStoreModule < UrlState , UrlGetters , UrlMutations , UrlActions > ; /**
 * Alias type for actions context of the  UrlXStoreModule .
 *
 *  public export type UrlActionContext = XActionContext < UrlState , UrlGetters , UrlMutations , UrlActions > ;