import type { Operation, OperationIndex } from './operation.js';
export type AugmentOps = {
[K in keyof Base]: K extends keyof Augmentation ? AugmentOp : Base[K];
};
type OperationIndexAugmentation = Record;
export type AugmentOp = {
[K in keyof Base | keyof Augmentation]: K extends keyof Base & keyof Augmentation & 'parameters' ? Augmentation['parameters'] extends ParamAugmentation ? AugmentParams : Base['parameters'] : K extends keyof Augmentation & 'response' ? Augmentation[K] : K extends keyof Base ? Base[K] : never;
};
type OperationAugmentation = {
parameters?: ParamAugmentation;
response?: any;
};
export type AugmentParams = {
[K in keyof Base | keyof Augmentation]: K extends keyof Augmentation & 'query' ? AugmentRecord, Exclude> : K extends keyof Augmentation & 'body' ? Augmentation['body'] : K extends keyof Base ? Base[K] : never;
};
type ParamAugmentation = {
query?: Record;
body?: any;
};
type AugmentRecord = 1 extends 0 ? never : {
[K in keyof Base | keyof Augmentation]: K extends keyof Augmentation ? Augmentation[K] : K extends keyof Base ? Base[K] : never;
};
export {};