import { Prisma, PrismaClient } from '@prisma/client';
import { SortOrder } from "../../../utils-api/src";
import { CreateEventInput, EventListArgs, EventSort, UpdateEventInput } from './event.model';
export declare class EventService {
    private prisma;
    constructor(prisma: PrismaClient);
    getEvents({ filter, cursorId, sort, order, take, skip }: EventListArgs): Promise<{
        nodes: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            description: Prisma.JsonValue[];
            status: import(".prisma/client").EventStatus;
            imageId: string;
            location: string;
            startsAt: Date;
            endsAt: Date;
            externalSourceName: string;
            externalSourceId: string;
        }, unknown> & {})[];
        totalCount: number;
        pageInfo: {
            hasPreviousPage: boolean;
            hasNextPage: boolean;
            startCursor: string;
            endCursor: string;
        };
    }>;
    getEventById(id: string): Promise<import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        name: string;
        description: Prisma.JsonValue[];
        status: import(".prisma/client").EventStatus;
        imageId: string;
        location: string;
        startsAt: Date;
        endsAt: Date;
        externalSourceName: string;
        externalSourceId: string;
    }, unknown> & {}>;
    updateEvent({ id, tagIds, description, ...input }: UpdateEventInput): Promise<import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        name: string;
        description: Prisma.JsonValue[];
        status: import(".prisma/client").EventStatus;
        imageId: string;
        location: string;
        startsAt: Date;
        endsAt: Date;
        externalSourceName: string;
        externalSourceId: string;
    }, unknown> & {}>;
    createEvent({ tagIds, description, ...input }: CreateEventInput): Promise<import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        name: string;
        description: Prisma.JsonValue[];
        status: import(".prisma/client").EventStatus;
        imageId: string;
        location: string;
        startsAt: Date;
        endsAt: Date;
        externalSourceName: string;
        externalSourceId: string;
    }, unknown> & {}>;
    deleteEvent(id: string): Promise<import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        name: string;
        description: Prisma.JsonValue[];
        status: import(".prisma/client").EventStatus;
        imageId: string;
        location: string;
        startsAt: Date;
        endsAt: Date;
        externalSourceName: string;
        externalSourceId: string;
    }, unknown> & {}>;
}
export declare const createEventOrder: (field: EventSort, sortOrder: SortOrder) => Prisma.EventFindManyArgs['orderBy'];
