import { ModuleAccessRepository } from '../../common/access/module-access.repository';
import type { AuthenticatedUser } from '../../common/auth/authenticated-user';
import type { CreateAccountShareDto } from './dto/create-account-share.dto';
import { AccountSharingRepository, type SharedModule } from './account-sharing.repository';
export declare class AccountSharingService {
    private readonly repository;
    private readonly moduleAccess;
    constructor(repository: AccountSharingRepository, moduleAccess: ModuleAccessRepository);
    catalog(): Promise<{
        module: SharedModule;
        sourceOwnerId: string;
        sourceOwnerName: string | null;
        sourceOwnerEmail: string;
        sourceOwnerActive: boolean;
        sourceAccountId: string;
        sourceAccountName: string;
        grants: {
            shareId: string;
            granteeId: string;
        }[];
    }[]>;
    create(input: CreateAccountShareDto, actor: AuthenticatedUser): Promise<{
        sourceAccountName: string;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        module: string;
        sourceOwnerId: string;
        sourceAccountId: string;
        granteeId: string;
        createdBy: string | null;
    }>;
    remove(id: string): Promise<void>;
    listFor(granteeId: string, module: SharedModule): Promise<{
        id: string;
        sharedAccess: {
            shareId: string;
            module: SharedModule;
            sourceOwnerId: string;
            sourceOwnerName: string | null;
            sourceOwnerEmail: string;
            sourceAccountId: string;
            readOnly: boolean;
        };
        name: string;
    }[]>;
}
