import { z } from 'zod';
import { ZTransformedRoles, ZUser } from './entities.js';
export const ZDataUserDetails = ZUser.extend({ roles: ZTransformedRoles });
export const ZSdkSetupReturn = z.object({
    credentials: z.literal('include'),
    headers: z.object({
        'content-type': z.literal('application/json'),
        'x-correlation-id': z.string().optional(),
        'x-feature-list': z.string().optional(),
        'x-komi-csrf': z.string().optional(),
        'x-profile-id': z.string().uuid().optional(),
        'x-service-name': z.string(),
        'x-service-version': z.string(),
        'x-session-id': z.string().optional()
    })
});
export const ZSdkHeaders = z.record(z.string());
export const ZSdkBody = z.record(z.any());
export const ZSdkQueryParams = z.record(z.string());
export const ZSdkPostPutPayload = z
    .object({
    body: ZSdkBody,
    headers: ZSdkHeaders
})
    .partial()
    .optional();
export const ZSdkGetPayload = z
    .object({
    headers: ZSdkHeaders,
    queryParams: ZSdkQueryParams
})
    .partial()
    .optional();
export const ZSdkDetelePayload = z
    .object({
    headers: ZSdkHeaders
})
    .partial()
    .optional();
export const ZSdkConfig = z.object({
    authUrl: z.string().url(),
    serviceName: z.string(),
    serviceVersion: z.string(),
    targetUrl: z.string().url()
});
