/**
 * Flat promise that can be resolved or rejected from outside.
 */
export interface Flatomise<T> {
    /**
     * The promise.
     */
    readonly promise: Promise<T>;
    /**
     * Resolve the promise.
     */
    readonly resolve: (value: T | PromiseLike<T>) => void;
    /**
     * Reject the promise.
     */
    readonly reject: (reason?: any) => void;
    /**
     * Whether the promise is settled (resolved or rejected).
     */
    readonly settled: boolean;
}
/**
 * Create a new Flatomise is a promise that can be resolved or rejected from outside.
 *
 * @returns A new Flatomise.
 *
 * @example
 * ```typescript
 * const flatomise = newFlatomise();
 * flatomise.promise.then(() => {
 *   console.log('flatomise resolved');
 * });
 * flatomise.resolve();
 * ```
 */
export declare function newFlatomise<T>(): Flatomise<T>;
//# sourceMappingURL=main.d.ts.map