import type { ParamsDictionary } from 'express-serve-static-core';
import type { ParsedQs } from 'qs';
import { z } from 'zod';
import type { DataRecord } from '@overture-stack/lectern-client';
import { RequestValidation } from './requestValidation.js';
export interface CategoryPathParams extends ParamsDictionary {
    categoryId: string;
}
export declare const categoryPathParamsSchema: z.ZodObject<{
    categoryId: z.ZodEffects<z.ZodString, string, string>;
}, "strip", z.ZodTypeAny, {
    categoryId: string;
}, {
    categoryId: string;
}>;
export declare const categoryOrganizationPathParamsSchema: z.ZodObject<{
    categoryId: z.ZodEffects<z.ZodString, string, string>;
    organization: z.ZodString;
}, "strip", z.ZodTypeAny, {
    organization: string;
    categoryId: string;
}, {
    organization: string;
    categoryId: string;
}>;
export type CategoryOrganizationPathParams = z.infer<typeof categoryOrganizationPathParamsSchema>;
export declare const categoryOrganizationEntityPathParamsSchema: z.ZodObject<{
    categoryId: z.ZodEffects<z.ZodString, string, string>;
    organizationId: z.ZodString;
    entityName: z.ZodString;
}, "strip", z.ZodTypeAny, {
    entityName: string;
    categoryId: string;
    organizationId: string;
}, {
    entityName: string;
    categoryId: string;
    organizationId: string;
}>;
export type CategoryOrganizationEntityPathParams = z.infer<typeof categoryOrganizationEntityPathParamsSchema>;
export interface submissionIdPathParam extends ParamsDictionary {
    submissionId: string;
}
export interface PaginationQueryParams extends ParsedQs {
    page?: string;
    pageSize?: string;
}
export interface AuditQueryParams extends ParsedQs {
    entityName?: string;
    eventType?: string;
    systemId?: string;
    startDate?: string;
    endDate?: string;
}
export declare const auditByCatAndOrgRequestSchema: RequestValidation<object, PaginationQueryParams & AuditQueryParams, CategoryOrganizationPathParams>;
export declare const categoryDetailsRequestSchema: RequestValidation<object, ParsedQs, CategoryPathParams>;
export interface DictionaryRegisterBodyParams {
    categoryName: string;
    dictionaryName: string;
    dictionaryVersion: string;
    defaultCentricEntity?: string;
}
export declare const dictionaryRegisterRequestSchema: RequestValidation<DictionaryRegisterBodyParams, ParsedQs, ParamsDictionary>;
export interface SubmissionsByCategoryQueryParams extends PaginationQueryParams {
    onlyActive?: string;
    organization?: string;
    username?: string;
}
export declare const submissionsByCategoryRequestSchema: RequestValidation<object, SubmissionsByCategoryQueryParams, CategoryPathParams>;
export declare const submissionByIdRequestSchema: RequestValidation<object, ParsedQs, submissionIdPathParam>;
export interface SubmissionsDetailsQueryParams extends PaginationQueryParams {
    entityNames?: string | string[];
    actionTypes?: string | string[];
}
export declare const submissionDetailsRequestSchema: RequestValidation<object, SubmissionsDetailsQueryParams, submissionIdPathParam>;
export declare const submissionActiveByOrganizationRequestSchema: RequestValidation<object, ParsedQs, CategoryOrganizationPathParams>;
export interface submissionCommitPathParams extends ParamsDictionary {
    categoryId: string;
    submissionId: string;
}
export declare const submissionCommitRequestSchema: RequestValidation<object, ParsedQs, submissionCommitPathParams>;
export interface SubmissionDeleteQueryParams extends ParsedQs {
    force?: string;
}
export declare const submissionDeleteRequestSchema: RequestValidation<object, SubmissionDeleteQueryParams, submissionIdPathParam>;
export interface SubmissionDeleteEntityNameParams extends ParamsDictionary {
    actionType: string;
    submissionId: string;
}
export interface SubmissionDeleteEntityNameQueryParams extends ParsedQs {
    entityName: string;
    index?: string;
}
export declare const submissionDeleteEntityNameRequestSchema: RequestValidation<object, SubmissionDeleteEntityNameQueryParams, SubmissionDeleteEntityNameParams>;
declare const uploadSubmissionQueryParams: z.ZodObject<{
    entityName: z.ZodString;
    organization: z.ZodString;
}, "strip", z.ZodTypeAny, {
    entityName: string;
    organization: string;
}, {
    entityName: string;
    organization: string;
}>;
export type UploadSubmissionQueryParams = z.infer<typeof uploadSubmissionQueryParams>;
declare const submissionUploadFilesQueryParams: z.ZodObject<{
    organization: z.ZodString;
}, "strip", z.ZodTypeAny, {
    organization: string;
}, {
    organization: string;
}>;
export type SubmissionUploadFilesQueryParams = z.infer<typeof submissionUploadFilesQueryParams>;
export declare const filenameEntityPair: z.ZodObject<{
    filename: z.ZodString;
    entity: z.ZodString;
}, "strip", z.ZodTypeAny, {
    filename: string;
    entity: string;
}, {
    filename: string;
    entity: string;
}>;
export type FilenameEntityPair = z.infer<typeof filenameEntityPair>;
export declare const uploadSubmissionRequestSchema: RequestValidation<FilenameEntityPair[] | undefined, SubmissionUploadFilesQueryParams, CategoryPathParams>;
export declare const uploadSingleEntitySubmissionDataRequestSchema: RequestValidation<Array<DataRecord>, UploadSubmissionQueryParams, CategoryPathParams>;
export interface DataDeleteBySystemIdPathParams extends ParamsDictionary {
    systemId: string;
    categoryId: string;
}
export declare const dataDeleteBySystemIdRequestSchema: RequestValidation<object, ParsedQs, DataDeleteBySystemIdPathParams>;
export interface DataEditRequestSchemaQueryParams extends ParsedQs {
    entityName: string;
    organization: string;
}
export declare const editSingleEntityRequestSchema: RequestValidation<Array<Record<string, unknown>>, UploadSubmissionQueryParams, CategoryPathParams>;
export interface DataQueryParams extends PaginationQueryParams {
    entityName?: string | string[];
    view?: string;
}
export interface GetDataQueryParams extends ParsedQs {
    view?: string;
}
export declare const dataGetByCategoryRequestSchema: RequestValidation<object, DataQueryParams, CategoryPathParams>;
export declare const dataGetByOrganizationRequestSchema: RequestValidation<object, DataQueryParams, CategoryOrganizationPathParams>;
export declare const dataGetByQueryRequestSchema: RequestValidation<object, DataQueryParams, CategoryOrganizationPathParams>;
export interface DataGetBySystemIdPathParams extends ParamsDictionary {
    systemId: string;
    categoryId: string;
}
export declare const DataGetBySystemIdRequestSchema: RequestValidation<object, GetDataQueryParams, DataGetBySystemIdPathParams>;
export declare const downloadDataFileTemplatesSchema: {
    query: z.ZodObject<{
        fileType: z.ZodOptional<z.ZodEnum<["csv", "tsv"]>>;
    }, "strip", z.ZodTypeAny, {
        fileType?: "csv" | "tsv" | undefined;
    }, {
        fileType?: "csv" | "tsv" | undefined;
    }>;
    pathParams: z.ZodObject<{
        categoryId: z.ZodEffects<z.ZodString, string, string>;
    }, "strip", z.ZodTypeAny, {
        categoryId: string;
    }, {
        categoryId: string;
    }>;
};
export declare const validationPathParamsSchema: z.ZodObject<{
    categoryId: z.ZodEffects<z.ZodString, string, string>;
    entityName: z.ZodString;
}, "strip", z.ZodTypeAny, {
    entityName: string;
    categoryId: string;
}, {
    entityName: string;
    categoryId: string;
}>;
export interface ValidationPathParams extends ParamsDictionary {
    categoryId: string;
    entityName: string;
}
export interface ValidationQueryParam extends ParsedQs {
    organization: string;
    value: string;
}
export declare const validationRequestSchema: RequestValidation<object, ValidationQueryParam, ValidationPathParams>;
export {};
