import type { ParamsDictionary } from 'express-serve-static-core';
import type { ParsedQs } from 'qs';
import { z as zod } 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: zod.ZodObject<{
    categoryId: zod.ZodEffects<zod.ZodString, string, string>;
}, "strip", zod.ZodTypeAny, {
    categoryId: string;
}, {
    categoryId: string;
}>;
export declare const categoryOrganizationPathParamsSchema: zod.ZodObject<{
    categoryId: zod.ZodEffects<zod.ZodString, string, string>;
    organization: zod.ZodString;
}, "strip", zod.ZodTypeAny, {
    categoryId: string;
    organization: string;
}, {
    categoryId: string;
    organization: string;
}>;
export type CategoryOrganizationPathParams = zod.infer<typeof categoryOrganizationPathParamsSchema>;
export declare const categoryOrganizationEntityPathParamsSchema: zod.ZodObject<{
    categoryId: zod.ZodEffects<zod.ZodString, string, string>;
    organizationId: zod.ZodString;
    entityName: zod.ZodString;
}, "strip", zod.ZodTypeAny, {
    categoryId: string;
    organizationId: string;
    entityName: string;
}, {
    categoryId: string;
    organizationId: string;
    entityName: string;
}>;
export type CategoryOrganizationEntityPathParams = zod.infer<typeof categoryOrganizationEntityPathParamsSchema>;
export interface submissionIdPathParam extends ParamsDictionary {
    submissionId: string;
}
export interface migrationIdPathParam extends ParamsDictionary {
    migrationId: 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 interface DictionaryRegisterQueryParams extends ParsedQs {
    force?: string;
}
export declare const dictionaryRegisterRequestSchema: RequestValidation<DictionaryRegisterBodyParams, DictionaryRegisterQueryParams, ParamsDictionary>;
export declare const migrationByIdRequestSchema: RequestValidation<object, ParsedQs, migrationIdPathParam>;
export declare const migrationsByCategoryIdRequestSchema: RequestValidation<object, PaginationQueryParams, CategoryPathParams>;
export interface MigrationDataQueryParams extends PaginationQueryParams {
    entityNames?: string | string[];
    organizations?: string | string[];
    isInvalid?: string;
}
export declare const migrationDataRequestSchema: RequestValidation<object, MigrationDataQueryParams, migrationIdPathParam>;
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: zod.ZodObject<{
    entityName: zod.ZodString;
    organization: zod.ZodString;
}, "strip", zod.ZodTypeAny, {
    organization: string;
    entityName: string;
}, {
    organization: string;
    entityName: string;
}>;
export type UploadSubmissionQueryParams = zod.infer<typeof uploadSubmissionQueryParams>;
declare const submissionUploadFilesQueryParams: zod.ZodObject<{
    organization: zod.ZodString;
    sync: zod.ZodOptional<zod.ZodEnum<["true", "false"]>>;
}, "strip", zod.ZodTypeAny, {
    organization: string;
    sync?: "true" | "false" | undefined;
}, {
    organization: string;
    sync?: "true" | "false" | undefined;
}>;
export type SubmissionUploadFilesQueryParams = zod.infer<typeof submissionUploadFilesQueryParams>;
export declare const filenameEntityPair: zod.ZodObject<{
    filename: zod.ZodString;
    entity: zod.ZodString;
}, "strip", zod.ZodTypeAny, {
    filename: string;
    entity: string;
}, {
    filename: string;
    entity: string;
}>;
export type FilenameEntityPair = zod.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: zod.ZodObject<{
        fileType: zod.ZodOptional<zod.ZodEnum<["csv", "tsv"]>>;
    }, "strip", zod.ZodTypeAny, {
        fileType?: "tsv" | "csv" | undefined;
    }, {
        fileType?: "tsv" | "csv" | undefined;
    }>;
    pathParams: zod.ZodObject<{
        categoryId: zod.ZodEffects<zod.ZodString, string, string>;
    }, "strip", zod.ZodTypeAny, {
        categoryId: string;
    }, {
        categoryId: string;
    }>;
};
export declare const validationPathParamsSchema: zod.ZodObject<{
    categoryId: zod.ZodEffects<zod.ZodString, string, string>;
    entityName: zod.ZodString;
}, "strip", zod.ZodTypeAny, {
    categoryId: string;
    entityName: string;
}, {
    categoryId: string;
    entityName: 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 {};
