import { SubscriptionFlowService } from './subscription-flow.service';
import { SubscriptionFlowModel, SubscriptionFlowModelCreateInput, SubscriptionFlowModelUpdateInput, SubscriptionIntervalCreateInput, SubscriptionIntervalUpdateInput } from './subscription-flow.model';
import { PrismaClient } from '@prisma/client';
export declare class SubscriptionFlowResolver {
    private readonly subscriptionFlowService;
    private readonly prismaService;
    constructor(subscriptionFlowService: SubscriptionFlowService, prismaService: PrismaClient);
    subscriptionFlows(defaultFlowOnly: boolean, memberPlanId?: string): Promise<({
        memberPlan: import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            tags: string[];
            description: import(".prisma/client").Prisma.JsonValue;
            active: boolean;
            amountPerMonthMin: number;
            imageID: string;
        }, unknown> & {};
        paymentMethods: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            description: string;
            paymentProviderID: string;
            active: boolean;
        }, unknown> & {})[];
        intervals: ({
            mailTemplate: import("@prisma/client/runtime/library").GetResult<{
                id: string;
                createdAt: Date;
                modifiedAt: Date;
                name: string;
                description: string;
                externalMailTemplateId: string;
                remoteMissing: boolean;
            }, unknown> & {};
        } & import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            event: import(".prisma/client").SubscriptionEvent;
            daysAwayFromEnding: number;
            mailTemplateId: string;
            subscriptionFlowId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        default: boolean;
        memberPlanId: string;
        periodicities: import(".prisma/client").PaymentPeriodicity[];
        autoRenewal: boolean[];
    }, unknown> & {})[]>;
    createSubscriptionFlow(flow: SubscriptionFlowModelCreateInput): Promise<({
        memberPlan: import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            tags: string[];
            description: import(".prisma/client").Prisma.JsonValue;
            active: boolean;
            amountPerMonthMin: number;
            imageID: string;
        }, unknown> & {};
        paymentMethods: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            description: string;
            paymentProviderID: string;
            active: boolean;
        }, unknown> & {})[];
        intervals: ({
            mailTemplate: import("@prisma/client/runtime/library").GetResult<{
                id: string;
                createdAt: Date;
                modifiedAt: Date;
                name: string;
                description: string;
                externalMailTemplateId: string;
                remoteMissing: boolean;
            }, unknown> & {};
        } & import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            event: import(".prisma/client").SubscriptionEvent;
            daysAwayFromEnding: number;
            mailTemplateId: string;
            subscriptionFlowId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        default: boolean;
        memberPlanId: string;
        periodicities: import(".prisma/client").PaymentPeriodicity[];
        autoRenewal: boolean[];
    }, unknown> & {})[]>;
    updateSubscriptionFlow(flow: SubscriptionFlowModelUpdateInput): Promise<({
        memberPlan: import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            tags: string[];
            description: import(".prisma/client").Prisma.JsonValue;
            active: boolean;
            amountPerMonthMin: number;
            imageID: string;
        }, unknown> & {};
        paymentMethods: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            description: string;
            paymentProviderID: string;
            active: boolean;
        }, unknown> & {})[];
        intervals: ({
            mailTemplate: import("@prisma/client/runtime/library").GetResult<{
                id: string;
                createdAt: Date;
                modifiedAt: Date;
                name: string;
                description: string;
                externalMailTemplateId: string;
                remoteMissing: boolean;
            }, unknown> & {};
        } & import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            event: import(".prisma/client").SubscriptionEvent;
            daysAwayFromEnding: number;
            mailTemplateId: string;
            subscriptionFlowId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        default: boolean;
        memberPlanId: string;
        periodicities: import(".prisma/client").PaymentPeriodicity[];
        autoRenewal: boolean[];
    }, unknown> & {})[]>;
    deleteSubscriptionFlow(subscriptionFlowId: string): Promise<({
        memberPlan: import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            tags: string[];
            description: import(".prisma/client").Prisma.JsonValue;
            active: boolean;
            amountPerMonthMin: number;
            imageID: string;
        }, unknown> & {};
        paymentMethods: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            description: string;
            paymentProviderID: string;
            active: boolean;
        }, unknown> & {})[];
        intervals: ({
            mailTemplate: import("@prisma/client/runtime/library").GetResult<{
                id: string;
                createdAt: Date;
                modifiedAt: Date;
                name: string;
                description: string;
                externalMailTemplateId: string;
                remoteMissing: boolean;
            }, unknown> & {};
        } & import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            event: import(".prisma/client").SubscriptionEvent;
            daysAwayFromEnding: number;
            mailTemplateId: string;
            subscriptionFlowId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        default: boolean;
        memberPlanId: string;
        periodicities: import(".prisma/client").PaymentPeriodicity[];
        autoRenewal: boolean[];
    }, unknown> & {})[]>;
    createSubscriptionInterval(subscriptionInterval: SubscriptionIntervalCreateInput): Promise<({
        memberPlan: import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            tags: string[];
            description: import(".prisma/client").Prisma.JsonValue;
            active: boolean;
            amountPerMonthMin: number;
            imageID: string;
        }, unknown> & {};
        paymentMethods: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            description: string;
            paymentProviderID: string;
            active: boolean;
        }, unknown> & {})[];
        intervals: ({
            mailTemplate: import("@prisma/client/runtime/library").GetResult<{
                id: string;
                createdAt: Date;
                modifiedAt: Date;
                name: string;
                description: string;
                externalMailTemplateId: string;
                remoteMissing: boolean;
            }, unknown> & {};
        } & import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            event: import(".prisma/client").SubscriptionEvent;
            daysAwayFromEnding: number;
            mailTemplateId: string;
            subscriptionFlowId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        default: boolean;
        memberPlanId: string;
        periodicities: import(".prisma/client").PaymentPeriodicity[];
        autoRenewal: boolean[];
    }, unknown> & {})[]>;
    updateSubscriptionInterval(subscriptionInterval: SubscriptionIntervalUpdateInput): Promise<({
        memberPlan: import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            tags: string[];
            description: import(".prisma/client").Prisma.JsonValue;
            active: boolean;
            amountPerMonthMin: number;
            imageID: string;
        }, unknown> & {};
        paymentMethods: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            description: string;
            paymentProviderID: string;
            active: boolean;
        }, unknown> & {})[];
        intervals: ({
            mailTemplate: import("@prisma/client/runtime/library").GetResult<{
                id: string;
                createdAt: Date;
                modifiedAt: Date;
                name: string;
                description: string;
                externalMailTemplateId: string;
                remoteMissing: boolean;
            }, unknown> & {};
        } & import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            event: import(".prisma/client").SubscriptionEvent;
            daysAwayFromEnding: number;
            mailTemplateId: string;
            subscriptionFlowId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        default: boolean;
        memberPlanId: string;
        periodicities: import(".prisma/client").PaymentPeriodicity[];
        autoRenewal: boolean[];
    }, unknown> & {})[]>;
    deleteSubscriptionInterval(id: string): Promise<({
        memberPlan: import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            tags: string[];
            description: import(".prisma/client").Prisma.JsonValue;
            active: boolean;
            amountPerMonthMin: number;
            imageID: string;
        }, unknown> & {};
        paymentMethods: (import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            name: string;
            slug: string;
            description: string;
            paymentProviderID: string;
            active: boolean;
        }, unknown> & {})[];
        intervals: ({
            mailTemplate: import("@prisma/client/runtime/library").GetResult<{
                id: string;
                createdAt: Date;
                modifiedAt: Date;
                name: string;
                description: string;
                externalMailTemplateId: string;
                remoteMissing: boolean;
            }, unknown> & {};
        } & import("@prisma/client/runtime/library").GetResult<{
            id: string;
            createdAt: Date;
            modifiedAt: Date;
            event: import(".prisma/client").SubscriptionEvent;
            daysAwayFromEnding: number;
            mailTemplateId: string;
            subscriptionFlowId: string;
        }, unknown> & {})[];
    } & import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        default: boolean;
        memberPlanId: string;
        periodicities: import(".prisma/client").PaymentPeriodicity[];
        autoRenewal: boolean[];
    }, unknown> & {})[]>;
    paymentMethods(): Promise<(import("@prisma/client/runtime/library").GetResult<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        name: string;
        slug: string;
        description: string;
        paymentProviderID: string;
        active: boolean;
    }, unknown> & {})[]>;
    numberOfSubscriptions(flow: SubscriptionFlowModel): Promise<number>;
}
