import { AnyT, EntityIdT, IApiUrlWrapper, IAuthWrapper, IBlobDataContentTypeWrapper, IBlobDataWrapper, IBlobResponseWrapper, IBlobUrlWrapper, ICancelTokenWrapper, ICodeWrapper, IDataProviderWrapper, IDataWrapper, IDateNowWrapper, IEntityWrapper, IErrorWrapper, IFormDataContentTypeWrapper, IFormDataWrapper, IHeadersWrapper, IIdWrapper, IKeyValue, IMessageWrapper, IMethodWrapper, INameWrapper, INoAuthWrapper, INoCacheWrapper, IOperationIdWrapper, IOperationWrapper, IParamsWrapper, IPathWrapper, IQueueWrapper, IRequestDataFactoryWrapper, IRequestProviderWrapper, IResponseFactoryWrapper, IResponseReaderWrapper, IResponseTypeWrapper, IResultWrapper, ISettingsWrapper, IStatusTextWrapper, IStatusWrapper, ITokenWrapper, ITransportFactoryWrapper, ITransportWrapper, IUniqueParamNameWrapper, IUrlFactoryWrapper, IUrlProviderWrapper, IUrlWrapper, IWithCredentialsWrapper } from '../definitions.interface'; /** * @stable [15.09.2019] */ export declare enum TransportEventCategoriesEnum { TRANSPORT = "transport", TRANSPORT_ERROR = "transport:error", TRANSPORT_RESPONSE_LENGTH = "transport:response:length" } /** * @stable [27.05.2019] */ export declare enum TransportMethodsEnum { POST = "post", GET = "get", PUT = "put", DELETE = "delete" } /** * @stable [15.09.2019] */ export declare enum TransportResponseTypesEnum { BLOB = "blob" } /** * Base transport request data entity * * @TransportRequest * @stable [15.09.2019] */ export interface IBaseTransportRequestDataEntity extends INameWrapper, INoAuthWrapper, IParamsWrapper { } /** * Base transport request entity * * @TransportRequest * @stable [15.09.2019] */ export interface IBaseTransportRequestEntity extends IWithCredentialsWrapper, IMethodWrapper, IHeadersWrapper { } /** * Transport request entity * * @TransportRequest * @stable [15.09.2019] */ export interface ITransportRequestEntity extends IBaseTransportRequestEntity, IBaseTransportRequestDataEntity, IBlobDataWrapper, IFormDataWrapper, IPathWrapper, INoCacheWrapper, IUrlWrapper, IBlobResponseWrapper, IResponseReaderWrapper<(response: AnyT) => AnyT>, IOperationWrapper, IRequestProviderWrapper, IResponseFactoryWrapper, ITransportFactoryWrapper, IUrlFactoryWrapper<(request: ITransportRequestEntity) => string>, IRequestDataFactoryWrapper> { } /** * Transport request payload entity. Is considered to be a provider request * * @TransportRequest * @stable [15.09.2019] */ export interface ITransportRequestPayloadEntity extends IBaseTransportRequestEntity, IUrlWrapper, IDataWrapper, IResponseTypeWrapper, ICancelTokenWrapper { } /** * Transport JSON RPC request data entity * * @TransportRequest * @stable [15.09.2019] */ export interface ITransportJsonRpcRequestDataEntity extends IBaseTransportRequestDataEntity, IAuthWrapper, IIdWrapper { } /** * Transport request data factory * * @TransportRequest * @stable [15.09.2019] */ export interface ITransportRequestDataFactory { makeRequestData(req: ITransportRequestEntity): IKeyValue; } /** * Transport request payload factory * * @TransportRequest * @stable [16.09.2019] */ export interface ITransportRequestPayloadFactory extends ITransportRequestDataFactory { makeRequestPayload(requestEntity: ITransportRequestEntity, cancelToken?: ITransportCancelTokenEntity): ITransportRequestPayloadEntity; } /** * Transport cancel token entity * * @TransportRequest * @stable [15.09.2019] */ export interface ITransportCancelTokenEntity { token: string; cancel(message?: string): void; } /** * Transport request provider * * @TransportRequest * @stable [15.09.2019] */ export interface ITransportRequestProvider { provideCancelToken?(): ITransportCancelTokenEntity; provideRequest(req: TRequest): Promise; } /** * Transport response factory entity * * @TransportResponse * @stable [16.09.2019] */ export interface ITransportResponseFactoryEntity extends IResultWrapper, IErrorWrapper, IMessageWrapper, IStatusTextWrapper, IStatusWrapper, ICodeWrapper { } /** * Transport response entity * * @TransportResponse * @stable [16.09.2019] */ export interface ITransportResponseEntity extends ITransportResponseFactoryEntity, INameWrapper, IOperationIdWrapper { } /** * Transport response factory payload * * @TransportResponse * @stable [15.09.2019] */ export declare type TransportResponseFactoryPayloadT = IKeyValue | number | string | boolean; /** * Transport response factory * * @TransportResponse * @stable [16.09.2019] */ export interface ITransportResponseFactory { makeResponse(req: ITransportRequestEntity, payloadEntity: TransportResponseFactoryPayloadT): ITransportResponseFactoryEntity; makeErrorResponse?(data: TransportResponseFactoryPayloadT): ITransportResponseFactoryEntity; } /** * Transport response accessor * * @TransportResponse * @stable [16.09.2019] */ export interface ITransportResponseAccessor { isAuthError(responseEntity: ITransportResponseEntity): boolean; } /** * Transport factory * * @Transport * @stable [16.09.2019] */ export interface ITransportFactory extends ICancelableTransport { request(requestEntity: ITransportRequestEntity, requestPayloadHandler?: (payload: ITransportRequestEntity) => ITransportRequestEntity): Promise; } /** * Transport * * @Transport * @stable [02.02.2019] */ export interface ICancelableTransport { cancelRequest(req: ITransportRequestEntity): void; } /** * Transport * * @Transport * @stable [15.09.2019] */ export interface ITransport extends ICancelableTransport, ITransportRequestDataFactory { request(req: ITransportRequestEntity): Promise; } /** * Transport settings * * @TransportSettingsEntity * @stable [16.09.2019] */ export interface ITransportSettingsEntity extends IBaseTransportRequestEntity, IApiUrlWrapper, IBlobDataContentTypeWrapper, IBlobUrlWrapper, IFormDataContentTypeWrapper, IUniqueParamNameWrapper { } /** * Transport url config entity * * @TransportUrl * @stable [16.09.2019] */ export interface ITransportUrlConfigEntity extends IEntityWrapper, IUrlProviderWrapper<(requestEntity: ITransportRequestEntity) => string>, ISettingsWrapper, IDataProviderWrapper<(requestEntity: ITransportRequestEntity) => IKeyValue>, IDateNowWrapper { } /** * Transport token accessor * * @TransportToken * @stable [16.09.2019] */ export interface ITransportTokenAccessor extends ITokenWrapper { } /** * @redux-entity * @stable [12.06.2020] */ export interface IReduxTransportEntity extends ITokenWrapper, IQueueWrapper { } /** * @flux-entity * @stable [17.03.2020] */ export interface IFluxTransportEntity extends IOperationIdWrapper, ITokenWrapper { } /** * @redux-holder-entity * @stable [12.06.2020] */ export interface IReduxTransportHolderEntity extends ITransportWrapper { } /** * @initial-redux-entity * @stable [31.07.2020] */ export declare const INITIAL_REDUX_TRANSPORT_ENTITY: Readonly; /** * @stable [16.03.2020] */ export declare const $_RAC_TRANSPORT_DESTROY_TOKEN_ACTION_TYPE: string; export declare const $_RAC_TRANSPORT_UPDATE_TOKEN_ACTION_TYPE: string;