import { Output } from '../../../utils/output/output.util';
import { Entity } from '../../../abstract/entity/entity.abstract';
import { IError } from '../../../interfaces/error-message.interface';
import { ISessionProps } from '../../../implementations/entities/session/session.props';
import { IdValueObject } from '../../../implementations/value-objects/id/id.value-object';
import { IpValueObject } from '../../../implementations/value-objects/ip/ip.value-object';
import { DateValueObject } from '../../../implementations/value-objects/date/date.value-object';
export declare class SessionEntity extends Entity<ISessionProps> {
    private readonly EXPIRATION_SESSION_IN_DAYS;
    constructor(props: ISessionProps);
    get ip(): IpValueObject;
    get expiresAt(): DateValueObject;
    get loggedAt(): DateValueObject;
    renew(ip: string): Output<IError> | Output<IdValueObject>;
    protected sanitizeProps(): void;
    protected isValidProps(): boolean;
    static init(props: ISessionProps): Output<IError> | Output<SessionEntity>;
}
