/** 
 | 
 * S&OP interface for UI element that has following behaviors: 
 | 
 * - Receives user input to set into component 
 | 
 * - Verify component value is as user expected value 
 | 
 * S&OP custom page objects in libappsop (e.g dialogsop, editfieldsop) implements this interface so that 
 | 
 * reusable logic can be centralized instead of spec files (and page objects) re-implementing the logic over and over. 
 | 
 */ 
 | 
export interface UIActionSOP { 
 | 
  clickActionLinkText(expectedActionLinkText: string): Promise<void>; 
 | 
  getValueString(): Promise<string>; // cannot use getValue() as numberpicker uses getValue() 
 | 
  setValue(value?: string): Promise<void>; 
 | 
  toggleValue?(): Promise<void>; 
 | 
  verifyBatchEditEnabled(expectedEnabled: boolean, expectedActionLinkText: string): Promise<void>; 
 | 
  verifyTooltip(expectedValue: string): Promise<void>; 
 | 
  verifyEnabled(expectedValue: boolean, expectedDisabledTooltip?: string): Promise<void>; 
 | 
  verifyHasMaskError(expectedValue: boolean): Promise<void>; 
 | 
  verifyValue(expectedValue?: string): Promise<void>; 
 | 
  verifyVisible(expectedValue?: string): Promise<void>; 
 | 
} 
 | 
  
 | 
/** 
 | 
 * S&OP interface for UI element that needs to wait for other elements to be loaded. 
 | 
 * For example: View that has multiple forms thus need wait for them present. 
 | 
 */ 
 | 
export interface UIWaitSOP { 
 | 
  /** 
 | 
   * Navigate web UI to open view (waiting for UI loaded to be handled via separate method waitUILoaded. 
 | 
   * Making this optional for now so that other views not impacted, BUT future to refactor all views to 
 | 
   * must implement this and we can then safely remove the optional (?). 
 | 
   */ 
 | 
  openView?(): Promise<void>; 
 | 
  
 | 
  /** 
 | 
   * Wait UI loaded (e.g for view waiting its forms to be present) 
 | 
   */ 
 | 
  waitUILoaded(): Promise<void>; 
 | 
} 
 |