export type InputOrigin = 'none' | 'default' | 'user';
export interface ProcessorArg {
input: Input | undefined;
inputOrigin: InputOrigin;
}
export interface UserPropertySpec {
getDefaultInput?(): Input;
transform?(arg: ProcessorArg): Output;
}
export interface PropertyCache {
value: Type | undefined;
invalid: boolean;
}
export declare class UserProperty {
private _spec;
private _userInputIsSet;
private _userInput;
private _inputCache;
private _outputCache;
constructor(_spec?: UserPropertySpec);
set(value: Input): void;
unset(): void;
get inputAndOrigin(): ProcessorArg;
get userInputIsSet(): boolean;
get userInput(): Input | undefined;
get hasDefaultInput(): boolean;
get defaultInput(): Input | undefined;
get input(): Input | undefined;
get inputOrigin(): InputOrigin;
resetInputCache(): void;
get output(): Output;
resetOutputCache(): void;
}