import { IUser, TisOwner, TlimitOwned, TlistOwned } from '../types';
export interface IMyUser {
    id: number;
    roles: string[];
}
export declare const USERS: {
    [name: string]: IMyUser;
};
export declare const USER_CREATED_DOCUMENTS: {
    [userId: number]: number[];
};
export interface IDocument {
    id: number;
    title: string;
    date: string;
    someRandomField: string;
    confidential: string;
}
export declare const ALL_DOCUMENTS_IDS: any[];
export declare const ALL_DOCUMENTS: IDocument[];
export declare const USER_MANAGES_MANY_USERS: {
    [userId: number]: number[];
};
export declare const USER_BELONGS_TO_ONE_COMPANY: {
    [userId: number]: number;
};
export declare type DocumentFilterPredicate = (IDocument: any) => boolean;
export declare const isUserCreatorOfDocument: ({ user, resourceId }: {
    user: any;
    resourceId: any;
}) => boolean;
export declare const listUserCreatedDocuments: (user: any) => Promise<number[]>;
export declare const isOwner_isUserCreatorOfDocument: TisOwner;
export declare const listOwned_listUserCreatedDocuments: TlistOwned;
export declare const limitOwned_listUserCreatedDocuments: TlimitOwned<number, DocumentFilterPredicate>;
export declare const listDocsOfMeAndMyManagedUsers: (user: IUser) => number[];
export declare const isOwner_isDocCreatedByMeAndMyManagedUsers: TisOwner;
export declare const listOwned_DocsOfMeAndMyManagedUsers: TlistOwned;
export declare const limitOwned_DocsOfMeAndMyManagedUsers: TlimitOwned<number, DocumentFilterPredicate>;
export declare const listDocsOfMeAndMyCompanyUsers: (user: IUser) => any[];
export declare const isOwner_isDocCreatedByMeAndMyCompanyUsers: TisOwner;
export declare const listOwned_DocsOfMeAndMyCompanyUsers: TlistOwned;
export declare const limitOwned_DocsOfMeAndMyCompanyUsers: TlimitOwned<number, DocumentFilterPredicate>;
