import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnInit, ViewContainerRef } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { ActionStatus } from '../../action-status';
import * as i0 from "@angular/core";
export interface IDeleteRecordEvent {
    pid: string;
    type?: string | undefined | null;
}
export declare class RecordSearchResultComponent implements OnInit, AfterViewInit {
    protected changeDetectorRef: ChangeDetectorRef;
    protected router: Router;
    currentUrl: string;
    deleteStatus: ActionStatus;
    updateStatus: ActionStatus;
    useStatus: ActionStatus;
    detailUrl: {
        link: string;
        external: boolean;
    };
    record: {
        id: string;
        metadata: {
            pid: string;
        };
    };
    type: string;
    itemViewComponent: any;
    adminMode: ActionStatus;
    canUpdate$: Observable<ActionStatus>;
    canDelete$: Observable<ActionStatus>;
    canUse$: Observable<ActionStatus>;
    aggregations: Array<object>;
    detailUrl$: Observable<{
        link: string;
        external: boolean;
    }>;
    deletedRecord: EventEmitter<IDeleteRecordEvent>;
    deleteMessageEvent: EventEmitter<string>;
    container: ViewContainerRef;
    get deleteInfoMessage(): string;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /**
     * Delete a record
     * @param pid - string, pid to delete
     * @param type - string, resource type
     */
    deleteRecord(pid: string, type?: string): void;
    /**
     * Use a record
     */
    useRecord(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RecordSearchResultComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RecordSearchResultComponent, "ng-core-record-search-result", never, { "record": { "alias": "record"; "required": false; }; "type": { "alias": "type"; "required": false; }; "itemViewComponent": { "alias": "itemViewComponent"; "required": false; }; "adminMode": { "alias": "adminMode"; "required": false; }; "canUpdate$": { "alias": "canUpdate$"; "required": false; }; "canDelete$": { "alias": "canDelete$"; "required": false; }; "canUse$": { "alias": "canUse$"; "required": false; }; "aggregations": { "alias": "aggregations"; "required": false; }; "detailUrl$": { "alias": "detailUrl$"; "required": false; }; }, { "deletedRecord": "deletedRecord"; "deleteMessageEvent": "deleteMessageEvent"; }, never, never, false, never>;
}
