import type { EditOptions, Enumeration, Filter, FilterWrapper, ListOptions, Model, ModelName, NextAdminContext, NextAdminOptions } from "../types";
import type { PrismaClient } from "../types-prisma";
type CreateWherePredicateParams<M extends ModelName> = {
    resource: M;
    options?: NextAdminOptions;
    search?: string;
    otherFilters?: Filter<M>[];
    advancedSearch?: string;
};
export declare const createWherePredicate: <M extends ModelName>({ resource, options, search, otherFilters, advancedSearch, }: CreateWherePredicateParams<M>) => {
    AND: any[];
};
export declare const mapModelFilters: (filters: ListOptions<ModelName>["filters"]) => Promise<FilterWrapper<ModelName>[]>;
type GetMappedDataListParams = {
    prisma: PrismaClient;
    resource: ModelName;
    options?: NextAdminOptions;
    searchParams: URLSearchParams;
    context: NextAdminContext;
    appDir?: boolean;
};
type OptionsFromResourceParams = {
    originResource: ModelName;
    property: string;
} & GetMappedDataListParams;
export declare const optionsFromResource: ({ originResource, property, ...args }: OptionsFromResourceParams) => Promise<{
    data: Enumeration[];
    total: number;
    error: string | null;
}>;
export declare const mapDataList: ({ context, appDir, fetchData, ...args }: Pick<GetMappedDataListParams, "resource" | "options" | "context" | "appDir"> & {
    fetchData: any[];
}) => any[];
export declare const getMappedDataList: ({ context, appDir, ...args }: GetMappedDataListParams) => Promise<{
    data: any[];
    total: number;
    error: string | null;
    rawData: any[];
}>;
export declare const selectPayloadForModel: <M extends ModelName>(resource: M, options?: EditOptions<M> | ListOptions<M>, level?: "scalar" | "object") => any;
export declare const getDataItem: <M extends ModelName>({ prisma, resource, options, resourceId, locale, isAppDir, }: {
    options?: NextAdminOptions;
    prisma: PrismaClient;
    isAppDir?: boolean;
    locale?: string;
    resource: M;
    resourceId: string | number;
}) => Promise<{
    data: any;
    relationshipsRawData: Record<string, any[]>;
}>;
/**
 * Get raw data from Prisma (2-deep nested relations)
 * @param prisma
 * @param resource
 * @param resourceId
 * @returns
 */
export declare const getRawData: <M extends ModelName>({ prisma, resource, resourceIds, maxDepth, }: {
    prisma: PrismaClient;
    resource: M;
    resourceIds: Array<string | number>;
    maxDepth?: number;
}) => Promise<Model<M>[]>;
export {};
//# sourceMappingURL=prisma.d.ts.map