import { Effect } from "@effect/core/io/Effect/definition";
import { EnforceNonEmptyRecord } from "@tsplus/stdlib/utilities/Types";
import type { _A, _E, _R } from "@effect/core/io/Effect/definition/base";
/**
 * Applicative structure.
 * @tsplus static ets/Effect/Ops struct
 * @tsplus location "@effect/core/io/Effect/operations/struct"
 */
export declare function struct<NER extends Record<string, Effect<any, any, any>>>(r: EnforceNonEmptyRecord<NER> | Record<string, Effect<any, any, any>>, __tsplusTrace?: string): Effect<[
    NER[keyof NER]
] extends [{
    [_R]: () => infer R;
}] ? R : never, [
    NER[keyof NER]
] extends [{
    [_E]: () => infer E;
}] ? E : never, {
    [K in keyof NER]: [NER[K]] extends [{
        [_A]: () => infer A;
    }] ? A : never;
}>;
/**
 * Applicative structure processed in parallel.
 * @tsplus static ets/Effect/Ops structPar
 * @tsplus location "@effect/core/io/Effect/operations/struct"
 */
export declare function structPar<NER extends Record<string, Effect<any, any, any>>>(r: EnforceNonEmptyRecord<NER> | Record<string, Effect<any, any, any>>, __tsplusTrace?: string): Effect<[
    NER[keyof NER]
] extends [{
    [_R]: () => infer R;
}] ? R : never, [
    NER[keyof NER]
] extends [{
    [_E]: () => infer E;
}] ? E : never, {
    [K in keyof NER]: [NER[K]] extends [{
        [_A]: () => infer A;
    }] ? A : never;
}>;
//# sourceMappingURL=struct.d.ts.map