The answer is a mix of @TomKunzemann and @GauravSrivastava's answers: You should declare it as a class.
With declare you are just telling the compiler about the shape and behavior of the type without implementing it, so it relies on an ambient Person function being included with your JavaScript.
And with class, you are telling TypeScript that it's the sort of thing that you instantiate with new.
Finally, you probably don't want to define peter be of type any, or TypeScript will not type check it afterwards. If you just leave off the : any, TypeScript will infer peter to be of type Person and it will perform the desired type checks, such as detecting typos (e.g., lastName instead of lastname):
declare class Person {
name: string;
lastname: string;
age: number;
}
let peter = new Person(); // okay
console.log(peter.name); // okay
// note the typo below
console.log(peter.lastName); // error!
// "Property 'lastName' does not exist on type 'Person'. Did you mean 'lastname'"?
Hope that helps; good luck!