, 'content'>;
interface ContextWithParams {
readonly params: LookupObject
& LookupObject
& LookupObject
;
}
type LookupObject = Partialize>;
type Partialize = V extends undefined ? Partial> : V;
type OperationParams = O extends OperationType ? P : {};
export type KoaValuesFor, M extends MimeType = typeof JSON_MIME_TYPE> = {
readonly [K in keyof O]: KoaValue;
};
type KoaValue = O extends OperationType ? EmptyData | NonEmptyData : never;
type EmptyData = Values<{
[C in keyof R]: Get extends never ? StatusesMatching : never;
}>;
type NonEmptyData = Values<{
[C in keyof R]: DataForCode, keyof R, M>;
}>;
type DataForCode = Values<{
[K in keyof D]: {
readonly data: D[K] | (D[K] extends string ? Buffer | stream.Readable : never);
} & WithType & WithStatus>;
}>;
type WithType = K extends M ? {
readonly type?: K;
} : {
readonly type: K;
};
type WithStatus = C extends 200 ? {
readonly status?: C;
} : {
readonly status: C;
};
type StatusPrefix = '2' | '3' | '4' | '5';
type StatusDigit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
type StatusString = `${P}${D1}${D2}`;
type CodeRangeFor
= `${P}XX`;
type AllCodes = StatusString extends `${infer N extends number}` ? N : never;
type StatusesMatching = C extends number ? `${C}` extends StatusString ? C : never : C extends CodeRangeFor ? StatusString extends `${infer N extends number}` ? Exclude : never : C extends 'default' ? Exclude>> : never;
export {};