import type { Db } from "@rudderhq/db";
import type { CreateOrganizationResourceRequest, CreateProjectInlineResourceInput, OrganizationResource, ProjectResourceAttachment, ProjectResourceAttachmentInput, UpdateProjectResourceAttachmentRequest, UpdateOrganizationResourceRequest } from "@rudderhq/shared";
export declare function listProjectResourceAttachments(db: Db, orgId: string, projectId: string): Promise<ProjectResourceAttachment[]>;
export declare function listOrganizationResources(db: Db, orgId: string): Promise<OrganizationResource[]>;
export declare function listProjectResourceAttachmentsByProjectIds(db: Db, orgId: string, projectIds: string[]): Promise<Map<string, ProjectResourceAttachment[]>>;
export declare function replaceProjectResourceAttachments(dbOrTx: Db | any, input: {
    orgId: string;
    projectId: string;
    attachments: ProjectResourceAttachmentInput[];
    newResources?: CreateProjectInlineResourceInput[];
}): Promise<ProjectResourceAttachment[]>;
export declare function resourceCatalogService(db: Db): {
    listOrganizationResources: (orgId: string) => Promise<OrganizationResource[]>;
    getOrganizationResourceById: (orgId: string, resourceId: string) => Promise<OrganizationResource | null>;
    createOrganizationResource: (orgId: string, input: CreateOrganizationResourceRequest) => Promise<OrganizationResource>;
    updateOrganizationResource: (orgId: string, resourceId: string, input: UpdateOrganizationResourceRequest) => Promise<OrganizationResource | null>;
    removeOrganizationResource: (orgId: string, resourceId: string) => Promise<OrganizationResource | null>;
    listProjectResourceAttachments: (projectId: string) => Promise<ProjectResourceAttachment[]>;
    replaceProjectResourceAttachments: (input: {
        orgId: string;
        projectId: string;
        attachments: ProjectResourceAttachmentInput[];
        newResources?: CreateProjectInlineResourceInput[];
    }) => Promise<ProjectResourceAttachment[]>;
    createProjectResourceAttachment: (projectId: string, input: ProjectResourceAttachmentInput) => Promise<ProjectResourceAttachment | null>;
    updateProjectResourceAttachment: (projectId: string, attachmentId: string, input: UpdateProjectResourceAttachmentRequest) => Promise<ProjectResourceAttachment | null>;
    removeProjectResourceAttachment: (projectId: string, attachmentId: string) => Promise<ProjectResourceAttachment | null>;
};
//# sourceMappingURL=resource-catalog.d.ts.map