export declare const services: {
    homepage: ({ strapi }: {
        strapi: import("@strapi/types/dist/core").Strapi;
    }) => {
        getUpcomingReleases(): Promise<import("../../../shared/contracts/homepage").GetUpcomingReleases.Response["data"]>;
    };
    release: ({ strapi }: {
        strapi: import("@strapi/types/dist/core").Strapi;
    }) => {
        create(releaseData: import("../../../shared/contracts/releases").CreateRelease.Request["body"], { user }: {
            user: import("../../../shared/types").UserInfo;
        }): Promise<any>;
        findOne(id: import("../../../shared/contracts/releases").GetRelease.Request["params"]["id"], query?: {}): Promise<any>;
        findPage(query?: import("../../../shared/contracts/releases").GetReleases.Request["query"]): Promise<{
            results: any[];
            pagination: {
                page: number;
                pageSize: number;
                pageCount: number;
                total: number;
            };
        }>;
        findMany(query?: any): Promise<any[]>;
        update(id: import("@strapi/types/dist/data").ID, releaseData: import("../../../shared/contracts/releases").UpdateRelease.Request["body"], { user }: {
            user: import("../../../shared/types").UserInfo;
        }): Promise<any>;
        getAllComponents(): Promise<any>;
        delete(releaseId: import("../../../shared/contracts/releases").DeleteRelease.Request["params"]["id"]): Promise<import("../../../shared/contracts/releases").Release>;
        publish(releaseId: import("../../../shared/contracts/releases").PublishRelease.Request["params"]["id"]): Promise<Pick<import("../../../shared/contracts/releases").Release, "id" | "releasedAt" | "status"> | null>;
        updateReleaseStatus(releaseId: import("../../../shared/contracts/releases").Release["id"]): Promise<any>;
    };
    'release-action': ({ strapi }: {
        strapi: import("@strapi/types/dist/core").Strapi;
    }) => {
        create(releaseId: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["params"]["releaseId"], action: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"], { disableUpdateReleaseStatus }?: {
            disableUpdateReleaseStatus?: boolean;
        }): Promise<any>;
        findPage(releaseId: import("../../../shared/contracts/release-actions").GetReleaseActions.Request["params"]["releaseId"], query?: import("../../../shared/contracts/release-actions").GetReleaseActions.Request["query"]): Promise<{
            results: any;
            pagination: {
                page: number;
                pageSize: number;
                pageCount: number;
                total: number;
            };
        }>;
        groupActions(actions: import("../../../shared/contracts/release-actions").ReleaseAction[], groupBy: import("../../../shared/contracts/release-actions").ReleaseActionGroupBy): Promise<import("lodash").Dictionary<(null | undefined)[]>>;
        getContentTypeModelsFromActions(actions: import("../../../shared/contracts/release-actions").ReleaseAction[]): Promise<{} | undefined>;
        countActions(query: import("@strapi/types/dist/modules/entity-service/params").Pick<typeof import("../constants").RELEASE_ACTION_MODEL_UID, "filters">): Promise<number>;
        update(actionId: import("../../../shared/contracts/release-actions").UpdateReleaseAction.Request["params"]["actionId"], releaseId: import("../../../shared/contracts/release-actions").UpdateReleaseAction.Request["params"]["releaseId"], update: import("../../../shared/contracts/release-actions").UpdateReleaseAction.Request["body"]): Promise<any>;
        delete(actionId: import("../../../shared/contracts/release-actions").DeleteReleaseAction.Request["params"]["actionId"], releaseId: import("../../../shared/contracts/release-actions").DeleteReleaseAction.Request["params"]["releaseId"]): Promise<any>;
        validateActionsByContentTypes(contentTypeUids: import("@strapi/types/dist/uid").ContentType[]): Promise<void>;
    };
    'release-validation': ({ strapi }: {
        strapi: import("@strapi/types/dist/core").Strapi;
    }) => {
        validateUniqueEntry(releaseId: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["params"]["releaseId"], releaseActionArgs: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]): Promise<void>;
        validateEntryData(contentTypeUid: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]["contentType"], entryDocumentId: import("../../../shared/contracts/release-actions").CreateReleaseAction.Request["body"]["entryDocumentId"]): void;
        validatePendingReleasesLimit(): Promise<void>;
        validateUniqueNameForPendingRelease(name: import("../../../shared/contracts/releases").CreateRelease.Request["body"]["name"], id?: import("../../../shared/contracts/releases").UpdateRelease.Request["params"]["id"]): Promise<void>;
        validateScheduledAtIsLaterThanNow(scheduledAt: import("../../../shared/contracts/releases").CreateRelease.Request["body"]["scheduledAt"]): Promise<void>;
    };
    scheduling: ({ strapi }: {
        strapi: import("@strapi/types/dist/core").Strapi;
    }) => {
        set(releaseId: import("../../../shared/contracts/releases").Release["id"], scheduleDate: Date): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
        cancel(releaseId: import("../../../shared/contracts/releases").Release["id"]): Map<import("@strapi/types/dist/data").ID, string>;
        getAll(): Map<import("@strapi/types/dist/data").ID, string>;
        syncFromDatabase(): Promise<Map<import("@strapi/types/dist/data").ID, string>>;
    };
    settings: ({ strapi }: {
        strapi: import("@strapi/types/dist/core").Strapi;
    }) => {
        update({ settings }: {
            settings: import("../../../shared/contracts/settings").Settings;
        }): Promise<import("../../../shared/contracts/settings").Settings>;
        find(): Promise<import("../../../shared/contracts/settings").Settings>;
    };
};
//# sourceMappingURL=index.d.ts.map