For Parent -> Child, use @Input
For Child -> Parent, use @Output
So to use both: 
In the Parent Component
Typescript:
  onValueInParentComponentChanged(value: string) {
    this.valueInParentComponent = value;
  }
Html
<child-component 
 (onValueInParentComponentChanged)="onValueInParentComponentChanged($event)"
 [valueInParentComponent]="valueInParentComponent">
</child-component>
In the Child Component
Typescript: 
export class ChildComponent {  
   @Input() valueInParentComponent: string;
   @Output() onValueInParentComponentChanged = new EventEmitter<boolean>();
} 
onChange(){
  this.onValueInParentComponentChanged.emit(this.valueInParentComponent);
}
Html
<input type="text" [(ngModel)]="valueInParentComponent"   
    (ngModelChange)="onChange($event)"/>
Full Example
https://plnkr.co/edit/mc3Jqo3SDDaTueNBSkJN?p=preview
Other ways to accomplish this:
https://angular.io/docs/ts/latest/cookbook/component-communication.html