import { Runtime } from "../runtimes/mod.js";
import { Typedef } from "../types.js";
import { t } from "../index.js";
import { Effect } from "../gen/interfaces/metatype-typegraph-runtimes.js";
type PrismaLinkArg = {
    fkey?: boolean;
    field?: string;
    unique?: boolean;
};
export declare class PrismaRuntime extends Runtime {
    name: string;
    connectionStringSecret: string;
    constructor(name: string, connectionStringSecret: string);
    findUnique(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    findMany(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    findFirst(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    aggregate(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    count(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    groupBy(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    create(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    createMany(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    update(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    updateMany(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    upsert(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    delete(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    deleteMany(model: string | Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    execute(query: string, parameters: Typedef, effect: Effect): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    queryRaw(query: string, parameters: Typedef | null, output: Typedef): t.Func<t.Struct<{
        [key: string]: Typedef;
    }>, Typedef, {
        _id: number;
    }>;
    link(targetType: string | Typedef, name: string, arg?: PrismaLinkArg): Typedef;
}
export {};
