export declare namespace composeExtend {
export type DataFirst = <A1, I1, R1, A2, I2, R2>(
fromSchema: Schema.Schema<A1, I1, R1>,
extension: Schema.Schema<A2, I2, R2>
) => Schema.transform<
Schema.Schema<A1, I1, R1>,
Schema.extend<Schema.Schema<A1, I1, R1>, Schema.Schema<A2, I2, R2>>
>
export type DataLast = <A2, I2, R2>(
extension: Schema.Schema<A2, I2, R2>
) => <A1, I1, R1>(
fromSchema: Schema.Schema<A1, I1, R1>
) => Schema.transform<
Schema.Schema<A1, I1, R1>,
Schema.extend<Schema.Schema<A1, I1, R1>, Schema.Schema<A2, I2, R2>>
>
export type Signature = DataLast & DataFirst
}
export const composeExtend: composeExtend.Signature = dual<composeExtend.DataFirst, composeExtend.Signature>(
2,
(fromSchema, extension) => Schema.compose(fromSchema, Schema.extend(fromSchema, extension), { strict: false })
)
export declare namespace composeExtend {
export type DataFirst = <A1, I1, R1, A2, I2, R2>(
fromSchema: Schema.Schema<A1, I1, R1>,
extension: Schema.Schema<A2, I2, R2>
) => Schema.transform<
Schema.Schema<A1, I1, R1>,
Schema.extend<Schema.Schema<A1, I1, R1>, Schema.Schema<A2, I2, R2>>
>
export type DataLast = <A2, I2, R2>(
extension: Schema.Schema<A2, I2, R2>
) => <A1, I1, R1>(
fromSchema: Schema.Schema<A1, I1, R1>
) => Schema.transform<
Schema.Schema<A1, I1, R1>,
Schema.extend<Schema.Schema<A1, I1, R1>, Schema.Schema<A2, I2, R2>>
>
export type Signature = DataLast & DataFirst
}
export const composeExtend: composeExtend.Signature = dual<composeExtend.DataFirst, composeExtend.Signature>(
2,
(fromSchema, extension) => Schema.compose(fromSchema, Schema.extend(fromSchema, extension), { strict: false })
)