import { t } from './common';
export declare type IArgs = {
    typename: string;
    typeDef: t.IColumnTypeDef<t.ITypeRef>;
    parent: t.ITypedSheetRefParent;
    ctx: t.SheetCtx;
};
export declare class TypedSheetRefs<T, K extends keyof T> implements t.ITypedSheetRefs<T, K> {
    static PLACEHOLDER: string;
    static create<T, K extends keyof T>(args: IArgs): TypedSheetRefs<T, K>;
    static refLinkName(args: {
        typeDef: t.IColumnTypeDef<t.ITypeRef>;
    }): string;
    static refLinkKey(args: {
        typeDef: t.IColumnTypeDef<t.ITypeRef>;
    }): string;
    static refLink(args: {
        typeDef: t.IColumnTypeDef<t.ITypeRef>;
        links?: t.IUriMap;
    }): {
        linkKey: string;
        linkName: string;
        link: t.IRefLink<t.IRefLinkUri> | undefined;
    };
    private constructor();
    private readonly _ctx;
    private _sheet;
    private _load;
    ns: t.INsUri;
    readonly typeDef: t.IColumnTypeDef<t.ITypeRef>;
    readonly typename: string;
    readonly parent: t.ITypedSheetRefParent;
    get isLoaded(): boolean;
    get sheet(): t.ITypedSheet<T>;
    load(): Promise<t.ITypedSheetRefs<T, K>>;
    data(options?: t.ITypedSheetDataOptions): Promise<t.ITypedSheetData<T, K>>;
    private fire;
    private getCell;
    private getLink;
    private ensureLink;
}
