import { Either, Right, Left } from "@fp-ts/data/Either"; import { Opt } from "@effect-ts-app/core/Option"; import { Effect } from "@effect/io/Effect"; export { matchTag } from "@effect-ts/core/Utils"; declare const Initial_base: import("@effect-ts/system/Case").CaseConstructorTagged<"Initial", "_tag">; export declare class Initial extends Initial_base<{}> { } declare const Loading_base: import("@effect-ts/system/Case").CaseConstructorTagged<"Loading", "_tag">; export declare class Loading extends Loading_base<{}> { } declare const Refreshing_base: import("@effect-ts/system/Case").CaseConstructorTagged<"Refreshing", "_tag">; export declare class Refreshing extends Refreshing_base<{ readonly current: Either; readonly previous: Opt; }> { static succeed(a: A): Refreshing; static fail(e: E, previous?: A): Refreshing; static fromDone(d: Done): Refreshing; } declare const Done_base: import("@effect-ts/system/Case").CaseConstructorTagged<"Done", "_tag">; export declare class Done extends Done_base<{ readonly current: Either; readonly previous: Opt; }> { static succeed(this: void, a: A): Done; static fail(this: void, e: E, previous?: A): Done; static refresh(d: Done): Refreshing; } /** * @tsplus type QueryResult */ export type QueryResult = Initial | Loading | Refreshing | Done; type Result = Omit, "current"> | Omit, "current">; /** * @tsplus fluent QueryResult isSuccess * @tsplus location "@effect-ts-app/boilerplate-prelude/client/QueryResult" */ export declare function isSuccess(qr: QueryResult): qr is Result & { current: Right; }; /** * @tsplus fluent QueryResult hasValue * @tsplus location "@effect-ts-app/boilerplate-prelude/client/QueryResult" */ export declare function hasValue(qr: QueryResult): qr is Done | Refreshing; /** * @tsplus fluent QueryResult isRefreshing * @tsplus location "@effect-ts-app/boilerplate-prelude/client/QueryResult" */ export declare function isRefreshing(qr: QueryResult): qr is Refreshing; /** * @tsplus fluent QueryResult isDone * @tsplus location "@effect-ts-app/boilerplate-prelude/client/QueryResult" */ export declare function isDone(qr: QueryResult): qr is Done; /** * @tsplus fluent QueryResult isInitializing * @tsplus location "@effect-ts-app/boilerplate-prelude/client/QueryResult" */ export declare function isInitializing(qr: QueryResult): qr is Initial | Loading; /** * @tsplus fluent QueryResult isFailed * @tsplus location "@effect-ts-app/boilerplate-prelude/client/QueryResult" */ export declare function isFailed(qr: QueryResult): qr is Result & { current: Left; }; export type ResultTuple = readonly [result: Result, refresh: () => void]; export type QueryResultTuple = ResultTuple>; export declare const fail: typeof Done.fail, succeed: typeof Done.succeed; /** * @tsplus getter effect/io/Effect asQueryResult * @tsplus location "@effect-ts-app/boilerplate-prelude/client/QueryResult" */ export declare function queryResult(self: Effect): Effect>; //# sourceMappingURL=QueryResult.d.ts.map