You could always *try* it :-)
SQL> CREATE OR REPLACE PACKAGE MyPackage AS
  2
  3      TYPE myType is record(
  4      NAME VARCHAR(30),
  5      SURNAME VARCHAR(30)
  6      );
  7
  8      type vs is varray(10) of number;
  9      type nt is table of date;
 10      type blah is table of mytype;
 11
 12      FUNCTION printData(NAMEP VARCHAR) RETURN VARCHAR;
 13
 14  END MyPackage;
 15  /
Package created.
If you want to run DDL in a proc (normally a bad idea), you can use 'execute immediate' to run any sql statement, eg
SQL> begin
  2    execute immediate 'drop table t';
  3  end;
  4  /
PL/SQL procedure successfully completed.