import { $type, HKT, TyK, TyVar } from '@fp4ts/core';
import { Eq } from '@fp4ts/cats-kernel';
import { SemigroupK } from '../../semigroup-k';
import { Functor } from '../../functor';
import { FunctorFilter } from '../../functor-filter';
import { Apply } from '../../apply';
import { Applicative } from '../../applicative';
import { ApplicativeError } from '../../applicative-error';
import { FlatMap } from '../../flat-map';
import { CoflatMap } from '../../coflat-map';
import { Monad } from '../../monad';
import { MonadError } from '../../monad-error';
import { Option } from '../option';
import { Either } from '../either';
import { Try as TryBase } from './algebra';
export type Try = TryBase;
export declare const Try: TryObj;
export declare const Success: (a: A) => TryBase;
export declare const Failure: (e: Error) => TryBase;
interface TryObj {
(thunk: () => A): Try;
of(thunk: () => A): Try;
success(a: A): Try;
failure(e: Error): Try;
fromOption(o: Option): Try;
fromEither(ea: Either): Try;
Eq(EE: Eq, EA: Eq): Eq>;
readonly SemigroupK: SemigroupK;
readonly Functor: Functor;
readonly FunctorFilter: FunctorFilter;
readonly Apply: Apply;
readonly Applicative: Applicative;
readonly ApplicativeError: ApplicativeError;
readonly FlatMap: FlatMap;
readonly CoflatMap: CoflatMap;
readonly Monad: Monad;
readonly MonadError: MonadError;
}
declare module './algebra' {
interface Try extends HKT {
}
}
/**
* @category Type Constructor
* @category Data
*/
export interface TryF extends TyK<[unknown]> {
[$type]: Try>;
}
export {};
//# sourceMappingURL=try.d.ts.map