import { ResourceClassAndPropertyDefinitions } from '../../../../cache/ontology-cache/resource-class-and-property-definitions';
import { ReadWriteResource } from '../read-write-resource';
import { TypeGuard } from '../type-guard';
import { ReadValue } from '../values/read/read-value';
/**
 * @category Model V2
 */
export declare class ReadResource extends ReadWriteResource {
    label: string;
    attachedToProject: string;
    attachedToUser: string;
    hasPermissions: string;
    userHasPermission: string;
    arkUrl: string;
    versionArkUrl: string;
    creationDate: string;
    lastModificationDate?: string;
    deleteDate?: string;
    deleteComment?: string;
    isDeleted?: boolean;
    resourceClassLabel?: string;
    resourceClassComment?: string;
    entityInfo: ResourceClassAndPropertyDefinitions;
    properties: {
        [index: string]: ReadValue[];
    };
    incomingReferences: ReadResource[];
    outgoingReferences: ReadResource[];
    /**
     * Gets number of resource properties for this resource.
     * Each resource property is counted once,
     * regardless of how many values it has (if number of values > 1).
     */
    getNumberOfProperties(): number;
    /**
     * Gets the number of values for a given resource property.
     *
     * @param property the IRI of the property.
     */
    getNumberOfValues(property: string): number;
    /**
     * Gets the value type of a given resource property,
     * or `false` if cannot be determined.
     *
     * @param property the IRI of the property.
     */
    getValueType(property: string): string | false;
    /**
     * Given the IRI of a property pointing to a link value,
     * returns the corresponding link property IRI.
     *
     * @param linkValueProperty IRI of the link value property.
     */
    getLinkPropertyIriFromLinkValuePropertyIri(linkValueProperty: string): string;
    /**
     * Gets all the values for a given resource property.
     *
     * @param property the IRI of the property.
     */
    getValues(property: string): ReadValue[];
    /**
     * Gets an array of string values representing the values of a property.
     *
     * @param property the IRI of the property.
     * @param defaultStr placeholder if there is no string representation of a value.
     */
    getValuesAsStringArray(property: string, defaultStr?: string): string[];
    /**
     * Gets all the values for a given resource property as instances of the requested type.
     * If the value cannot be casted to the requested type, an error is thrown.
     *
     * @param property the IRI of the property.
     * @param valueType the requested type of the value.
     */
    getValuesAs<T extends ReadValue>(property: string, valueType: TypeGuard.Constructor<T>): T[];
}
//# sourceMappingURL=read-resource.d.ts.map